свойство 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;
}
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.19.6/dart-async/Stream/length.html