Spec-Zone.ru › Dart 2

dart:async

Метод contains

Future<bool> contains(
  1. Object? needle
)

Возвращает, содержится ли needle в элементах, предоставляемых этим потоком.

Сравнивает каждый элемент этого потока с needle с помощью Object.==. Если найден равный элемент, возвращаемое будущее завершается со значением true. Если этот поток завершается без совпадения, будущее завершается со значением false.

Если этот поток генерирует ошибку или вызов Object.== вызывает ошибку, возвращаемое будущее завершается этой ошибкой, и обработка останавливается.

Пример:

final result = await Stream.fromIterable(['Year', 2021, 12, 24, 'Dart'])
    .contains('Dart');
print(result); // true

Реализация

Future<bool> contains(Object? needle) {
  _Future<bool> future = new _Future<bool>();
  StreamSubscription<T> subscription =
      this.listen(null, onError: future._completeError, onDone: () {
    future._complete(false);
  }, cancelOnError: true);
  subscription.onData((T element) {
    _runUserCode(() => (element == needle), (bool isMatch) {
      if (isMatch) {
        _cancelAndValue(subscription, future, true);
      }
    }, _cancelAndErrorClosure(subscription, future));
  });
  return future;
}

© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-async/Stream/contains.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API