Spec-Zone.ru › Dart 2

dart:async

Метод timeout

Future<T> timeout(
  1. Duration timeLimit,
  2. {FutureOr<T> onTimeout( )?}
)

Отключает вычисление будущего после истечения timeLimit.

Возвращает новое будущее, которое завершается с тем же значением, что и это будущее, если это будущее завершается вовремя.

Если это будущее не завершается до истечения timeLimit, вместо этого выполняется действие onTimeout, и его результат (возвращаемое значение или исключение) используется в качестве результата возвращаемого будущего. Функция onTimeout должна возвращать T или Future<T>.

Если onTimeout опущено, таймаут приведет к завершению возвращаемого будущего с TimeoutException.

Пример:

void main() async {
  var result = await waitTask()
      .timeout(const Duration(seconds: 10));
  print(result); // 'completed'

  result = await waitTask()
      .timeout(const Duration(seconds: 1), onTimeout: () => 'timeout');
  print(result); // 'timeout'

  result = await waitTask()
      .timeout(const Duration(seconds: 2)); // Throws.
}

Future<String> waitTask() async {
  await Future.delayed(const Duration(seconds: 5));
  return 'completed';
}

Реализация

Future<T> timeout(Duration timeLimit, {FutureOr<T> onTimeout()?});

© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-async/Future/timeout.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API