timeoutWithFallback<T> function

Future<T> timeoutWithFallback<T>({
  1. required Future<T> future,
  2. required Duration timeout,
  3. required T fallback,
})

Timeout with fallback value. Roadmap #179.

Implementation

Future<T> timeoutWithFallback<T>({
  required Future<T> future,
  required Duration timeout,
  required T fallback,
}) async {
  try {
    return await future.timeout(timeout);
  } on TimeoutException catch (e) {
    dev.log(
      'Timeout after $timeout; returning fallback.',
      name: _kLogNameTimeoutWithFallback,
      error: e,
    );
    return fallback;
  }
}