свойство isEmpty
Содержит ли этот поток какие-либо элементы.
Ожидает первый элемент этого потока, а затем завершает возвращаемый future значением false. Если этот поток завершается, не выдав ни одного элемента, возвращаемый future завершается значением true.
Если первым событием является ошибка, возвращаемый future завершается с этой ошибкой.
Эта операция подписывается на этот поток, и поток без широковещательной передачи нельзя использовать повторно после проверки на пустоту.
Реализация
Future<bool> get isEmpty {
_Future<bool> future = new _Future<bool>();
StreamSubscription<T> subscription =
this.listen(null, onError: future._completeError, onDone: () {
future._complete(true);
}, cancelOnError: true);
subscription.onData((_) {
_cancelAndValue(subscription, future, false);
});
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/isEmpty.html