File tree Expand file tree Collapse file tree 1 file changed +11
-6
lines changed Expand file tree Collapse file tree 1 file changed +11
-6
lines changed Original file line number Diff line number Diff line change 88 isTrue ,
99 isObject ,
1010 hasSymbol ,
11- isPromise
11+ isPromise ,
12+ remove
1213} from 'core/util/index'
1314
1415import { createEmptyVNode } from 'core/vdom/vnode'
@@ -51,17 +52,21 @@ export function resolveAsyncComponent (
5152 return factory . resolved
5253 }
5354
55+ const owner = currentRenderingInstance
56+ if ( isDef ( factory . owners ) && factory . owners . indexOf ( owner ) === - 1 ) {
57+ // already pending
58+ factory . owners . push ( owner )
59+ }
60+
5461 if ( isTrue ( factory . loading ) && isDef ( factory . loadingComp ) ) {
5562 return factory . loadingComp
5663 }
5764
58- const owner = currentRenderingInstance
59- if ( isDef ( factory . owners ) ) {
60- // already pending
61- factory . owners . push ( owner )
62- } else {
65+ if ( ! isDef ( factory . owners ) ) {
6366 const owners = factory . owners = [ owner ]
6467 let sync = true
68+
69+ if ( owner ) owner . $on ( 'hook:destroyed' , ( ) => remove ( owners , owner ) )
6570
6671 const forceRender = ( renderCompleted : boolean ) => {
6772 for ( let i = 0 , l = owners . length ; i < l ; i ++ ) {
You can’t perform that action at this time.
0 commit comments