Метод 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.18.5/dart-async/Stream/where.html