until method

  1. @override
Future<void> until(
  1. String task,
  2. FutureOr<bool> isFinished()
)
override

Waits for isFinished to resolve true for the identified task.

since 1.7.0

Implementation

@override
Future<void> until(String task, FutureOr<bool> Function() isFinished) async {
  var timeoutEpochMs =
      clock.millisecondsSinceEpoch() + timeout.inMilliseconds;
  while (await isFinished().isFalse) {
    if (timeoutEpochMs < clock.millisecondsSinceEpoch()) {
      throw TimeoutException('Waiting for $task');
    }
    await delay(interval);
  }
}