isEmpty 属性

Future<bool> isEmpty

此流是否包含任何元素。

等待此流的第一个元素,然后使用 false 完成返回的 future。如果此流结束而没有发出任何元素,返回的 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;
}