Spec-Zone.ru › Dart 2

dart:async

Метод take

Stream<T> take(
  1. int count
)

Предоставляет не более первых count событий данных этого потока.

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

Если этот поток производит меньше count событий данных перед завершением, то и возвращаемый поток сделает то же самое.

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

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

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

Пример:

final stream =
    Stream<int>.periodic(const Duration(seconds: 1), (i) => i)
        .take(60);
stream.forEach(print); // Outputs events: 0, ... 59.

Реализация

Stream<T> take(int count) {
  return new _TakeStream<T>(this, count);
}

© 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/Stream/take.html

Spec-Zone.ru

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