]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
wip: only buffer suspense effects when unresolved
authorEvan You <yyx990803@gmail.com>
Wed, 11 Sep 2019 13:04:03 +0000 (09:04 -0400)
committerEvan You <yyx990803@gmail.com>
Wed, 11 Sep 2019 15:10:13 +0000 (11:10 -0400)
packages/runtime-core/src/createRenderer.ts

index 62d38d71f6ef6c4d4b1d77f6c429ad145ed9a40c..f7eb3fc064bb2aa4a945bf92ffac0235e65532b7 100644 (file)
@@ -82,12 +82,14 @@ function queuePostEffect(
   fn: Function | Function[],
   suspense: SuspenseBoundary<any, any> | null
 ) {
-  if (suspense === null) {
-    queuePostFlushCb(fn)
-  } else if (isArray(fn)) {
-    suspense.effects.push(...fn)
+  if (suspense !== null && !suspense.isResolved) {
+    if (isArray(fn)) {
+      suspense.effects.push(...fn)
+    } else {
+      suspense.effects.push(fn)
+    }
   } else {
-    suspense.effects.push(fn)
+    queuePostFlushCb(fn)
   }
 }