ScheduleMicrotaskHandler typedef Null safety

ScheduleMicrotaskHandler = void Function(Zone self, ZoneDelegate parent, Zone zone, void f())

The type of a custom Zone.scheduleMicrotask implementation function.

Receives the Zone that the handler was registered on as self, a delegate forwarding to the handlers of self's parent zone as parent, and the current zone where the error was uncaught as zone, which will have self as a parent zone.

The function f is the function which was passed to Zone.scheduleMicrotask of zone.

The custom handler can choose to replace the function f with one that does something before, after or instead of calling f, and then call parent.scheduleMicrotask(zone, replacement). or it can implement its own microtask scheduling queue, which typically still depends on parent.scheduleMicrotask to as a way to get started.

The function must only access zone-related functionality through self, parent or zone. It should not depend on the current zone (Zone.current).

Implementation

typedef void ScheduleMicrotaskHandler(
    Zone self, ZoneDelegate parent, Zone zone, void f());