Spec-Zone.ru › Dart 2

dart:async

Метод where

Stream<T> where(
  1. bool test(
    1. 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

Spec-Zone.ru

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