isEmpty property

Future<bool> isEmpty

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