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