在 Dart 中将单个订阅流拆分为 2 个流
Split a Single Subscription Stream into 2 Steams in Dart
我有一个消息流:有些是请求,有些是响应。
我想从我的源创建 2 个流。
_responseStream = _sourceStream.transform(decoder).where((message) => message.isResponse());
_requestStream = _sourceStream.transform(decoder).where((message) => message.isRequest());
这个解决方案优化了吗? (无论是性能还是其他方面)。
提前致谢。
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();
或
final streams = StreamSplitter.splitFrom(_sourcStream.transform(decoder), 2); // 2 is the default and can be omitted
我有一个消息流:有些是请求,有些是响应。 我想从我的源创建 2 个流。
_responseStream = _sourceStream.transform(decoder).where((message) => message.isResponse());
_requestStream = _sourceStream.transform(decoder).where((message) => message.isRequest());
这个解决方案优化了吗? (无论是性能还是其他方面)。
提前致谢。
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();
或
final streams = StreamSplitter.splitFrom(_sourcStream.transform(decoder), 2); // 2 is the default and can be omitted