scheduleRead method

Disposable scheduleRead(
  1. DomReadWriteFn fn
)

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;
}