toList方法

Future<List<T>> toList()

将此Stream中的所有元素收集到一个List中。

创建一个List<T>,并将此Stream中所有元素按到达顺序添加到列表中。当此Stream结束时,返回的future被排空,并带有那个列表。

如果此Stream引发错误,返回的future将被完成并带有那个错误,处理会停止。

实现

Future<List<T>> toList() {
  List<T> result = <T>[];
  _Future<List<T>> future = new _Future<List<T>>();
  this.listen(
      (T data) {
        result.add(data);
      },
      onError: future._completeError,
      onDone: () {
        future._complete(result);
      },
      cancelOnError: true);
  return future;
}