【问题标题】:How does one make a Stream from a Map with Dart如何使用 Dart 从地图中创建流
【发布时间】:2019-05-09 20:26:57
【问题描述】:

使用 Dart,我可以使用 Stream.fromIterable(list) 从列表中创建一个 Stream 对象。但是如果我想通过 var map={"a":1, "b":2, 3:4, 6:5} 之类的 Map() 进行流式传输怎么办;

【问题讨论】:

  • Stream.fromIterable(map.entries)?
  • 是的,这就是答案。谢谢。我在下面添加示例代码。

标签: dart stream


【解决方案1】:

不清楚那会是什么流。较小的映射可能是一种方式,也可能是 2 元素数组(如 Python 元组)。生成器函数将是这样做的方法:

Stream<Map<String, dynamic>> mapStream(Map source) async* {
    for (var k in source.keys) {
        yield { "key": k, "value": source[k] };
    }
}

【讨论】:

    【解决方案2】:

    @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"));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-07
      • 2021-04-12
      • 1970-01-01
      • 2020-08-30
      • 2021-06-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多