waitFor

Future<T> waitFor<T>(

  1. T callback(), {
  2. Duration timeout = const Duration(seconds: 1),
  3. Duration interval = const Duration(milliseconds: 50),
})

Waits for a condition to be true.

Implementation

Future<T> waitFor<T>(
  T Function() callback, {
  Duration timeout = const Duration(seconds: 1),
  Duration interval = const Duration(milliseconds: 50),
}) async {
  final deadline = DateTime.now().add(timeout);
  Object? lastError;

while (DateTime.now().isBefore(deadline)) { try { return callback(); } on TestingLibraryException catch (e) { lastError = e; await Future<void>.delayed(interval); } }

throw TestingLibraryException('waitFor timed out. Last error: $lastError'); }