[IMP] component: re-introduce error handling in lifecycle

This commit is contained in:
Lucas Perais (lpe)
2021-11-08 10:30:36 +01:00
committed by Aaron Bohy
parent bca6afeb90
commit e0c0306acd
8 changed files with 668 additions and 65 deletions
+13 -5
View File
@@ -1,4 +1,5 @@
import { Fiber, RootFiber } from "./fibers";
import { handleError, fibersInError } from "./error_handling";
import { STATUS } from "./status";
// -----------------------------------------------------------------------------
@@ -46,20 +47,27 @@ export class Scheduler {
this.tasks.delete(fiber);
return;
}
if (fiber.error) {
const hasError = fibersInError.has(fiber);
if (hasError && fiber.counter !== 0) {
this.tasks.delete(fiber);
fiber.reject(fiber.error);
fiber.reject(fibersInError.get(fiber));
return;
}
if (fiber.node.status === STATUS.DESTROYED) {
this.tasks.delete(fiber);
return;
}
if (fiber.counter === 0) {
if (!fiber.error) {
fiber.complete();
if (!hasError) {
try {
fiber.complete();
fiber.resolve();
} catch (e) {
handleError(fiber.node, e);
fiber.reject(e);
}
}
fiber.resolve();
this.tasks.delete(fiber);
}
});