runAfterChangesObserved method
void
runAfterChangesObserved(
- void callback()
Executes a callback after changes were observed by the zone.
Use this method instead of Future
, Timer.run
, and scheduleMicrotask
to execute a callback
after change detection has run:
void example(NgZone zone) {
someValue = true;
zone.runAfterChangesObserved(() {
doSomethingDependentOnSomeValueChanging();
});
}
Note that unlike Future
and Timer.run
, this method will execute
callback
in the current event loop before yielding to the browser. This
means that changes made prior to invoking this method, even if reflected
in the DOM, may not be visible until after callback
returns and the
browser can render another frame.
Implementation
void runAfterChangesObserved(void Function() callback) {
if (isRunning) {
onTurnDone.first.whenComplete(() => scheduleMicrotask(callback));
} else {
scheduleMicrotask(callback);
}
}