isArray,
EMPTY_OBJ,
NOOP,
- hasOwn
+ hasOwn,
+ isPromise
} from '@vue/shared'
import { computed } from './apiComputed'
import { watch, WatchOptions, WatchCallback } from './apiWatch'
)
}
const data = dataOptions.call(ctx, ctx)
+ if (__DEV__ && isPromise(data)) {
+ warn(
+ `data() returned a Promise - note data() cannot be async; If you ` +
+ `intend to perform data fetching before component renders, use ` +
+ `async setup() + <Suspense>.`
+ )
+ }
if (!isObject(data)) {
__DEV__ && warn(`data() should return an object.`)
} else if (instance.data === EMPTY_OBJ) {