метод 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.19.6/dart-async/Stream/take.html