take方法

Stream<T> take(
  1. 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);
}