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