|
|
@@ -61,10 +61,14 @@ export function resolveAsyncComponent (
|
|
|
const contexts = factory.contexts = [context]
|
|
|
let sync = true
|
|
|
|
|
|
- const forceRender = () => {
|
|
|
+ const forceRender = (renderCompleted: boolean) => {
|
|
|
for (let i = 0, l = contexts.length; i < l; i++) {
|
|
|
contexts[i].$forceUpdate()
|
|
|
}
|
|
|
+
|
|
|
+ if (renderCompleted) {
|
|
|
+ contexts.length = 0
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
const resolve = once((res: Object | Class<Component>) => {
|
|
|
@@ -73,7 +77,7 @@ export function resolveAsyncComponent (
|
|
|
// invoke callbacks only if this is not a synchronous resolve
|
|
|
// (async resolves are shimmed as synchronous during SSR)
|
|
|
if (!sync) {
|
|
|
- forceRender()
|
|
|
+ forceRender(true)
|
|
|
}
|
|
|
})
|
|
|
|
|
|
@@ -84,7 +88,7 @@ export function resolveAsyncComponent (
|
|
|
)
|
|
|
if (isDef(factory.errorComp)) {
|
|
|
factory.error = true
|
|
|
- forceRender()
|
|
|
+ forceRender(true)
|
|
|
}
|
|
|
})
|
|
|
|
|
|
@@ -111,7 +115,7 @@ export function resolveAsyncComponent (
|
|
|
setTimeout(() => {
|
|
|
if (isUndef(factory.resolved) && isUndef(factory.error)) {
|
|
|
factory.loading = true
|
|
|
- forceRender()
|
|
|
+ forceRender(false)
|
|
|
}
|
|
|
}, res.delay || 200)
|
|
|
}
|