elapse method

void elapse(
  1. Duration duration

Simulates the asynchronous passage of time.

Throws an ArgumentError if duration is negative. Throws a StateError if a previous call to elapse has not yet completed.

Any timers created within run or fakeAsync will fire if their time is within duration. The microtask queue is processed before and after each timer fires.


void elapse(Duration duration) {
  if (duration.inMicroseconds < 0) {
    throw ArgumentError.value(duration, 'duration', 'may not be negative');
  } else if (_elapsingTo != null) {
    throw StateError('Cannot elapse until previous elapse is complete.');

  _elapsingTo = _elapsed + duration;
  _fireTimersWhile((next) => next._nextCall <= _elapsingTo!);
  _elapsingTo = null;