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