take方法
- int count
提供最多前count
个数据事件。
返回一个流,它会在同一时间发出此流会发出的相同事件,直到此流结束或已发出count
个数据事件,此时返回的流完成。
如果此流在完成前产生的数据事件少于count
个,返回的流也会如此。
当返回的流被监听时开始监听此流,并在接收第一个count
个数据事件后停止监听。
这意味着如果是单订阅(非广播)流,在返回的流被监听后不能被重用。
如果是广播流,返回的流也是广播流。在这种情况下,事件计数从返回的流被监听时开始。
示例
final stream =
Stream<int>.periodic(const Duration(seconds: 1), (i) => i)
.take(60);
stream.forEach(print); // Outputs events: 0, ... 59.
实现
Stream<T> take(int count) {
return new _TakeStream<T>(this, count);
}