length 属性

Future<int> length

该流中元素的数量。

等待该流的所有元素。当该流结束时,返回的 future 会完成,并带有元素的数量。

如果该流发出错误,返回的 future 会完成并带有该错误,并且处理停止。

此操作会监听该流,找到长度后无法重用非广播流。

实现

Future<int> get length {
  _Future<int> future = new _Future<int>();
  int count = 0;
  this.listen(
      (_) {
        count++;
      },
      onError: future._completeError,
      onDone: () {
        future._complete(count);
      },
      cancelOnError: true);
  return future;
}