isEmpty property
Whether this stream contains any elements.
Waits for the first element of this stream, then completes the returned
future with true
.
If the stream ends without emitting any elements, the returned future is
completed with false
.
If the first event is an error, the returned future is completed with that error.
This operation listens to the 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 subscription;
subscription = this.listen(
(_) {
_cancelAndValue(subscription, future, false);
},
onError: future._completeError,
onDone: () {
future._complete(true);
},
cancelOnError: true);
return future;
}