Spec-Zone.ru › Dart 1

dart:async

Метод any

Future<T> any<T>(Iterable<Future<T>> futures)

Возвращает результат первого будущего в futures для завершения.

Возвращаемое будущее завершается результатом первого будущего в futures для сообщения о завершении. Результаты всех других будущих задач отбрасываются.

Если futures пусто или если ни одно из его будущих задач не завершается, возвращаемое будущее никогда не завершается.

Исходный код

static Future<T> any<T>(Iterable<Future<T>> futures) {
  var completer = new Completer<T>.sync();
  var onValue = (T value) {
    if (!completer.isCompleted) completer.complete(value);
  };
  var onError = (error, stack) {
    if (!completer.isCompleted) completer.completeError(error, stack);
  };
  for (var future in futures) {
    future.then(onValue, onError: onError);
  }
  return completer.future;
}

© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-async/Future/any.html

Spec-Zone.ru

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