isEmpty property
Whether this stream contains any elements.
Waits for the first element of this stream, then completes the returned
future with false
.
If this stream ends without emitting any elements, the returned future is
completed with true
.
If the first event is an error, the returned future is completed with that error.
This operation listens to this stream, and a non-broadcast stream cannot be reused after checking whether it is empty.
Implementation
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;
}