any method
Checks whether test
accepts any element provided by this stream.
Calls test
on each element of the stream.
If the call returns true
, the returned future is completed with true
and processing stops.
If the stream ends without finding an element that test
accepts,
the returned future is completed with false
.
If this stream contains an error, or if the call to test
throws,
the returned future is completed with that error, and processing stops.
Implementation
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;
}