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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。