takeWhile 方法
- bool test(
- T element
只要 test 成功,就转发数据事件。
返回一个流,该流提供与当前流相同的事件,直到数据事件使 test 失败。当此流完成,或者当此流首次发出使 test 失败的数据事件时,返回的流将完成。
如果 test 返回非 true 值或抛出异常,则认为 test 调用失败。如果 test 调用抛出异常,则错误将作为返回流上的最后一个事件发出。
在接受到的元素之后停止监听此流。
内部方法在这些元素之后取消其订阅。这意味着单订阅(非广播)流在调用此方法后将关闭,并且不能重用。
如果此流是广播流,则返回的流也是广播流。对于广播流,事件只在返回流被监听时进行检查。
示例
final stream = Stream<int>.periodic(const Duration(seconds: 1), (i) => i)
.takeWhile((event) => event < 6);
stream.forEach(print); // Outputs events: 0, ..., 5.
实现
Stream<T> takeWhile(bool test(T element)) {
return new _TakeWhileStream<T>(this, test);
}