Метод any
Future<bool> any(Проверяет, принимает ли test любой элемент, предоставляемый этим потоком.
Завершает Future, когда ответ известен.
Если этот поток сообщает об ошибке, Future сообщает об этой ошибке.
Прекращает прослушивание потока после обнаружения первого соответствующего элемента.
Внутренне метод отменяет свою подписку после этого элемента. Это означает, что потоки с единственной подпиской (не широковещательные) закрываются и не могут быть повторно использованы после вызова этого метода.
Исходный код
Future<bool> any(bool test(T element)) {
_Future<bool> future = new _Future<bool>();
StreamSubscription subscription;
subscription = this.listen(
(T element) {
_runUserCode(() => test(element), (bool isMatch) {
if (isMatch) {
_cancelAndValue(subscription, future, true);
}
}, _cancelAndErrorClosure(subscription, future));
},
onError: future._completeError,
onDone: () {
future._complete(false);
},
cancelOnError: true);
return future;
}
© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-async/Stream/any.html