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