refactor(runtime-core): extract promise check into shared (#325)
This commit is contained in:
committed by
Evan You
parent
bb9dca2047
commit
7305f693b1
@@ -23,7 +23,8 @@ import {
|
||||
isArray,
|
||||
isObject,
|
||||
NO,
|
||||
makeMap
|
||||
makeMap,
|
||||
isPromise
|
||||
} from '@vue/shared'
|
||||
import { SuspenseBoundary } from './suspense'
|
||||
import {
|
||||
@@ -281,11 +282,7 @@ export function setupStatefulComponent(
|
||||
currentInstance = null
|
||||
currentSuspense = null
|
||||
|
||||
if (
|
||||
setupResult &&
|
||||
isFunction(setupResult.then) &&
|
||||
isFunction(setupResult.catch)
|
||||
) {
|
||||
if (isPromise(setupResult)) {
|
||||
if (__FEATURE_SUSPENSE__) {
|
||||
// async setup returned Promise.
|
||||
// bail here and wait for re-entry.
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { VNode } from './vnode'
|
||||
import { ComponentInternalInstance, LifecycleHooks } from './component'
|
||||
import { warn, pushWarningContext, popWarningContext } from './warning'
|
||||
import { isPromise } from '@vue/shared'
|
||||
|
||||
// contexts where user provided function may be executed, in addition to
|
||||
// lifecycle hooks.
|
||||
@@ -71,8 +72,8 @@ export function callWithAsyncErrorHandling(
|
||||
args?: any[]
|
||||
) {
|
||||
const res = callWithErrorHandling(fn, instance, type, args)
|
||||
if (res != null && !res._isVue && typeof res.then === 'function') {
|
||||
res.catch((err: any) => {
|
||||
if (res != null && !res._isVue && isPromise(res)) {
|
||||
res.catch((err: Error) => {
|
||||
handleError(err, instance, type)
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user