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);
}