метод where
-
bool test(
- T event
Создает новый поток на основе этого потока, отбрасывая некоторые элементы.
Новый поток отправляет те же события ошибок и завершения, что и этот поток, но отправляет только события данных, удовлетворяющие test.
Если функция test выбрасывает исключение, событие данных отбрасывается, а ошибка отправляется вместо этого в возвращаемый поток.
Возвращаемый поток является широковещательным, если этот поток является широковещательным. Если широковещательный поток прослушивается более одного раза, каждая подписка отдельно выполняет test.
Пример:
final stream =
Stream<int>.periodic(const Duration(seconds: 1), (count) => count)
.take(10);
final customStream = stream.where((event) => event > 3 && event <= 6);
customStream.listen(print); // Outputs event values: 4,5,6. Реализация
Stream<T> where(bool test(T event)) {
return new _WhereStream<T>(this, test);
}
© 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/where.html