bind 方法
- 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));
}