Метод bind
Преобразует предоставленный stream.
Возвращает новый поток с событиями, вычисляемыми на основе событий предоставленного stream.
Интерфейс StreamTransformer полностью обобщён, поэтому он не может сказать, что делают подклассы. Каждый StreamTransformer должен чётко документировать, как он преобразует поток (в классе или переменной, используемой для доступа к преобразователю), а также любые отличия от следующего типичного поведения:
- При подписке на возвращаемый поток он начинает следить за входным
stream. - Подписки возвращаемого потока передают (в разумное время) вызов StreamSubscription.pause подписке входного
stream. - Аналогично, отмена подписки возвращаемого потока в конечном счёте (в разумное время) отменяет подписку входного
stream.
«Разумное время» зависит от преобразователя и потока. Некоторые преобразователи, такие как преобразователь «таймаут», могут заставить эти операции зависеть от продолжительности. Другие могут вообще не задерживать их или только на микрозадачу.
Преобразователи могут обрабатывать ошибки любым способом. Реализация преобразователя может выбрать распространение ошибок, преобразование их в другие события или полное игнорирование, но если ошибки игнорируются, это должно быть явно задокументировано.
Реализация
Stream<String> bind(Stream<String> stream) {
return Stream<String>.eventTransformed(
stream, (EventSink<String> sink) => _LineSplitterEventSink(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/LineSplitter/bind.html