elapse method
- 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.
Implementation
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!);
_elapseTo(_elapsingTo!);
_elapsingTo = null;
}