dart:async
库中Stream.eventTransformed
的用法介绍如下。
用法:
Stream<T>.eventTransformed(
Stream source,
EventSink mapSink(
EventSink<T> sink
)
)
创建一个流,其中现有流的所有事件都通过sink-transformation 进行管道传输。
监听返回的流时调用给定的 mapSink
闭包。 source
中的所有事件都添加到调用返回的事件接收器中。转换将所有转换后的事件放入接收器,在其调用期间接收到 mapSink
闭包。从概念上讲,mapSink
创建一个转换管道,输入接收器是返回的EventSink,输出接收器是它接收到的接收器。
此构造函数经常用于构建转换器。
复制转换器的示例使用:
class DuplicationSink implements EventSink<String> {
final EventSink<String> _outputSink;
DuplicationSink(this._outputSink);
void add(String data) {
_outputSink.add(data);
_outputSink.add(data);
}
void addError(e, [st]) { _outputSink.addError(e, st); }
void close() { _outputSink.close(); }
}
class DuplicationTransformer extends StreamTransformerBase<String, String> {
// Some generic types omitted for brevity.
Stream bind(Stream stream) => Stream<String>.eventTransformed(
stream,
(EventSink sink) => DuplicationSink(sink));
}
stringStream.transform(DuplicationTransformer());
如果source
是,则生成的流是广播流。
相关用法
- Dart Stream.every用法及代码示例
- Dart Stream.error用法及代码示例
- Dart Stream.empty用法及代码示例
- Dart Stream.fromFutures用法及代码示例
- Dart Stream.fold用法及代码示例
- Dart Stream.map用法及代码示例
- Dart Stream.asBroadcastStream用法及代码示例
- Dart Stream.handleError用法及代码示例
- Dart Stream.where用法及代码示例
- Dart Stream.reduce用法及代码示例
- Dart Stream.join用法及代码示例
- Dart Stream.periodic用法及代码示例
- Dart Stream.take用法及代码示例
- Dart Stream.lastWhere用法及代码示例
- Dart Stream.contains用法及代码示例
- Dart Stream.firstWhere用法及代码示例
- Dart Stream.drain用法及代码示例
- Dart Stream.multi用法及代码示例
- Dart Stream.distinct用法及代码示例
- Dart Stream.timeout用法及代码示例
- Dart Stream.transform用法及代码示例
- Dart Stream.singleWhere用法及代码示例
- Dart Stream.fromFuture用法及代码示例
- Dart Stream.skipWhile用法及代码示例
- Dart Stream.skip用法及代码示例
注:本文由纯净天空筛选整理自dart.dev大神的英文原创作品 Stream<T>.eventTransformed constructor。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。