如何在另一个区域安排任务

How to schedule task in another zone

如何将捕获的任务安排到另一个区域?

假设我想安排根区域中的所有 setInterval。

它不起作用:

Zone.current.fork({
    name: "Chiled_zone",
    onScheduleTask(parentZoneDelegate: ZoneDelegate, currentZone: Zone, targetZone: Zone, task: Task) {
        if (task.source === "setInterval")
            return parentZoneDelegate.scheduleTask(Zone.root, task);
        else
            return parentZoneDelegate.scheduleTask(targetZone, task);
    }

})
.run(() => {...});

它也不起作用:

Zone.current.fork({
    name: "Chiled_zone",
    onScheduleTask(parentZoneDelegate: ZoneDelegate, currentZone: Zone, targetZone: Zone, task: Task) {
        Zone.root.scheduleTask(task);
    }

})
.run(() => {...});

你能告诉我你的用例吗?是的,您可以在不同的区域安排任务。

Zone.current.fork({
  name: 'child zone', 
  onScheduleTask(parentDelegate, currentZone, targetZone, task) {
     task.cancelScheduleRequest();
     return Zone.root.scheduleTask(task);
  }
})