0

How to schedule catched task in another zone?

Assume I want to schedule all setInterval`s in root zone.

It`s not working:

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(() => {...});

It`s not working too:

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

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

1 Answers1

1

Could you tell me about your use case? And yes you can schedule the task in a different zone.

Zone.current.fork({
  name: 'child zone', 
  onScheduleTask(parentDelegate, currentZone, targetZone, task) {
     task.cancelScheduleRequest();
     return Zone.root.scheduleTask(task);
  }
})
jiali passion
  • 1,691
  • 1
  • 14
  • 19