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