Spec-Zone.ru › Dart 2

dart:convert

Метод bind

Stream<T> bind(
  1. Stream<S> stream
)
override

Преобразует предоставленный stream.

Возвращает новый поток с событиями, вычисляемыми на основе событий предоставленного stream.

Интерфейс StreamTransformer полностью обобщён, поэтому не может указывать, что делают подклассы. Каждый StreamTransformer должен чётко документировать, как он преобразует поток (в классе или переменной, используемой для доступа к преобразователю), а также любые отличия от следующего типичного поведения:

  • Когда к возвращаемому потоку подключается слушатель, он начинает прослушивать входной stream.
  • Подписки на возвращаемый поток передают (в разумное время) вызов StreamSubscription.pause подписке входного stream.
  • Аналогично, отмена подписки на возвращаемый поток в конечном итоге (в разумное время) отменяет подписку входного stream.

"Разумное время" зависит от преобразователя и потока. Некоторые преобразователи, такие как преобразователь "таймаут", могут заставить эти операции зависеть от продолжительности. Другие могут вообще не задерживать их или только на микрозадачу.

Преобразователи могут обрабатывать ошибки любым способом. Реализация преобразователя может выбрать распространение ошибок, преобразование их в другие события или полное игнорирование, но если ошибки игнорируются, это должно быть явно задокументировано.

Реализация

Stream<T> bind(Stream<S> stream) {
  return Stream<T>.eventTransformed(
      stream, (EventSink sink) => _ConverterStreamEventSink(this, sink));
}

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

Spec-Zone.ru

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