waitFor method

Future<void> waitFor(
  1. bool condition(), {
  2. Duration timeout = const Duration(seconds: 5),
  3. Duration pollInterval = const Duration(milliseconds: 50),
})

Wait for a condition to be true (with timeout)

Implementation

Future<void> waitFor(
  bool Function() condition, {
  Duration timeout = const Duration(seconds: 5),
  Duration pollInterval = const Duration(milliseconds: 50),
}) async {
  final startTime = DateTime.now();
  while (!condition()) {
    if (DateTime.now().difference(startTime) > timeout) {
      throw TimeoutException('Condition not met within timeout', timeout);
    }
    await Future.delayed(pollInterval);
  }
}