Метод take
- 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