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