我有一个消息流:一些是请求,其他是响应。我想从我的源创建 2 个流。
_responseStream = _sourceStream.transform(decoder).where((message) => message.isResponse());
_requestStream = _sourceStream.transform(decoder).where((message) => message.isRequest());
Run Code Online (Sandbox Code Playgroud)
这个解决方案优化了吗?(在性能或其他方面)。
提前致谢。
https://pub.dartlang.org/packages/async包含StreamSplitter允许执行此操作的内容。
final multiStream = StreamSplitter(_sourcStream.transform(decoder));
_responseStream = _multiStream.split().where((message) => message.isResponse());
_requestStream = _multiStream.split().where((message) => message.isRequest());
multiStream.close();
Run Code Online (Sandbox Code Playgroud)
或者
final streams = StreamSplitter.splitFrom(_sourcStream.transform(decoder), 2); // 2 is the default and can be omitted
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1179 次 |
| 最近记录: |