takeWhile方法
- bool test(
- T element
只要test
执行成功,就转发数据事件。
返回一个流,该流在此流对数据事件执行失败之前提供相同的事件。当此流完成或者首次发出使test
失败的数据事件时,返回的流结束。
如果test
调用返回非true
值或抛出异常,则认为调用失败。如果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);
}