借助Dart,我可以使用Stream.fromIterable(list)
从列表中创建Stream对象。但是,如果我想流经诸如var map={"a":1, "b":2, 3:4, 6:5}
;这样的Map()会怎样?
答案 0 :(得分:0)
那将是什么并不清楚。较小的地图可能是一种方式,也可能是2元素数组(例如Python元组)。生成器函数将是这样做的方式:
Stream<Map<String, dynamic>> mapStream(Map source) async* {
for (var k in source.keys) {
yield { "key": k, "value": source[k] };
}
}
答案 1 :(得分:0)
@jamesdlin提供了我一直在寻找的答案。这是一个示例:
Map<dynamic, int> map = {1: 1, 'a': 10, 'b': 20, 3: 2, 4: 4, 6: 5};
Stream stream = Stream.fromIterable(map.entries);
await stream
.where((i) => i.key.runtimeType == int)
.listen((i) => print(i.value))
.onDone(() => print("done"));