[IMP] component: render does not return a promise anymore

This commit is contained in:
Géry Debongnie
2021-11-29 16:02:51 +01:00
committed by Aaron Bohy
parent 8a1ac13975
commit eceb3e6280
14 changed files with 103 additions and 208 deletions
+4 -9
View File
@@ -1,4 +1,4 @@
import { Fiber, RootFiber } from "./fibers";
import { Fiber, MountFiber, RootFiber } from "./fibers";
import { fibersInError } from "./error_handling";
import { STATUS } from "./status";
@@ -38,19 +38,15 @@ export class Scheduler {
flush() {
this.tasks.forEach((fiber) => {
if (fiber.root !== fiber) {
// this is wrong! should be something like
// if (this.tasks.has(fiber.root)) {
// // parent rendering has completed
// fiber.resolve();
// this.tasks.delete(fiber);
// }
this.tasks.delete(fiber);
return;
}
const hasError = fibersInError.has(fiber);
if (hasError && fiber.counter !== 0) {
this.tasks.delete(fiber);
fiber.reject(fibersInError.get(fiber));
if (fiber instanceof MountFiber) {
fiber.reject(fibersInError.get(fiber));
}
return;
}
if (fiber.node.status === STATUS.DESTROYED) {
@@ -61,7 +57,6 @@ export class Scheduler {
if (fiber.counter === 0) {
if (!hasError) {
fiber.complete();
fiber.resolve();
}
this.tasks.delete(fiber);
}