Spec-Zone.ru › Dart 1

dart:async

Первое свойство

Future<T> first

Возвращает первый элемент потока.

Прекращает прослушивание потока после получения первого элемента.

Внутренне метод отменяет свою подписку после получения первого элемента. Это означает, что потоки с однократной подпиской (не широковещательные) закрываются и не могут быть повторно использованы после вызова этого свойства.

Если возникает ошибка до появления первого события данных, результирующее будущее завершается этой ошибкой.

Если этот поток пустой (событие завершения происходит до первого события данных), результирующее будущее завершается ошибкой StateError.

За исключением типа ошибки, этот метод эквивалентен this.elementAt(0).

Исходный код

Future<T> get first {
  _Future<T> future = new _Future<T>();
  StreamSubscription subscription;
  subscription = this.listen(
      (T value) {
        _cancelAndValue(subscription, future, value);
      },
      onError: future._completeError,
      onDone: () {
        try {
          throw IterableElementError.noElement();
        } catch (e, s) {
          _completeWithErrorCallback(future, e, s);
        }
      },
      cancelOnError: true);
  return 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/Stream/first.html

Spec-Zone.ru

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