bind 方法
override
将提供的 stream
进行转换。
返回一个新流,其中事件是根据提供的 stream
的事件计算得出的。
StreamTransformer 接口是完全通用的,因此它无法说明子类执行的操作。每个 StreamTransformer 应当明确说明它如何转换流(在用于访问转换器的类或变量上),以及与以下典型行为的任何差异
- 当监听返回的流时,它开始监听输入
stream
。 - 返回流的订阅将(在合理的时间内)将 StreamSubscription.pause 调用转发给输入
stream
的订阅。 - 类似地,取消返回流的订阅最终(在合理的时间内)将取消输入
stream
的订阅。
"合理的时间"取决于转换器和流。一些转换器,如 "timeout" 转换器,可能会使这些操作依赖于一个持续时间。其他转换器可能根本不会延迟它们,或者只是微任务级别的延迟。
转换器可以自由处理错误。转换器实现可以选择传播错误,或将错误转换为其他事件,或者完全忽略它们,但如果忽略错误,则应明确记录。
实现
Stream<String> bind(Stream<String> stream) {
return Stream<String>.eventTransformed(
stream, (EventSink<String> sink) => _LineSplitterEventSink(sink));
}