scheduleRead method
Schedules a coordinated DOM read. If already isReadingDom, fn
is
executed synchronously.
Otherwise, it will execute in the next animation frame. It is possible to cancel by calling Disposable.dispose on the return (deprecated). It is better to pass in a DisposableCallback instead DisposableCallback callback = new DisposableCallback(fn); domService.scheduleRead(callback);
Implementation
Disposable scheduleRead(DomReadWriteFn fn) {
if (_state == DomServiceState.Reading) {
fn();
return Disposable.Noop;
}
// This is temporary until all the callers are fixed.
DisposableCallback callback = DisposableCallback(fn);
_scheduleInQueue(callback.call, _domReadQueue);
return callback;
}