mirror of
https://github.com/odoo/owl.git
synced 2025-10-06 19:59:41 +07:00
[FIX] component: cancel previous mounting operations if necessary
closes #626
This commit is contained in:
@@ -34,7 +34,7 @@ export class Scheduler {
|
||||
this.isRunning = false;
|
||||
}
|
||||
|
||||
addFiber(fiber): Promise<void> {
|
||||
addFiber(fiber: Fiber): Promise<void> {
|
||||
// if the fiber was remapped into a larger rendering fiber, it may not be a
|
||||
// root fiber. But we only want to register root fibers
|
||||
fiber = fiber.root;
|
||||
@@ -57,6 +57,17 @@ export class Scheduler {
|
||||
});
|
||||
}
|
||||
|
||||
rejectFiber(fiber: Fiber, reason: string) {
|
||||
fiber = fiber.root;
|
||||
const index = this.tasks.findIndex(t => t.fiber === fiber);
|
||||
if (index >= 0) {
|
||||
const [task] = this.tasks.splice(index, 1);
|
||||
fiber.cancel();
|
||||
fiber.error = new Error(reason);
|
||||
task.callback();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Process all current tasks. This only applies to the fibers that are ready.
|
||||
* Other tasks are left unchanged.
|
||||
|
||||
Reference in New Issue
Block a user