Dart 如何将最新的流图组合成值图?
我有一个Dart 如何将最新的流图组合成值图?,dart,stream,rxdart,Dart,Stream,Rxdart,我有一个映射,我想把它转换成一个流,它应该能从前者生成最新的值快照。我需要类似于Rx.combineLatest(mapofstream.values,(list)=>list)的东西,但不知何故保留了map键 我找到了这个解决方案,它似乎很有效(假设映射的键和值总是对齐的),但我觉得一定有更好的方法: final keys = mapOfStreams.keys.toList(); Rx.combineLatest( mapOfStreams.values, (list) => list
映射
,我想把它转换成一个流
,它应该能从前者生成最新的值快照。我需要类似于Rx.combineLatest(mapofstream.values,(list)=>list)的东西,但不知何故保留了map键
我找到了这个解决方案,它似乎很有效(假设映射的键和值总是对齐的),但我觉得一定有更好的方法:
final keys = mapOfStreams.keys.toList();
Rx.combineLatest( mapOfStreams.values, (list) => list.asMap().map( (i, value) => MapEntry(keys[i], value) ) );
这是我的方式
void main()异步{
最终流={
“a”:流周期(常量持续时间(毫秒:200),(i)=>i),
“b”:流周期(常量持续时间(毫秒:500),(i)=>i),
“c”:Stream.value('Hello'),
};
最终$=Rx.CombineTest(
流。条目
.map((entry)=>entry.value.map((v)=>MapEntry(entry.key,v)),
(列表值)=>Map.fromEntries(值),
);
最后的美元听(打印);
等待未来。延迟(持续时间(秒:10));
}