【问题标题】:How to merge stream using StreamZip in Dart如何在 Dart 中使用 StreamZip 合并流
【发布时间】:2020-07-17 13:49:36
【问题描述】:

我有两个流:

Stream<List<Order>>  stream1 = pendingStream();
Stream<List<Order>>  stream2 = preparingStream();

我正在尝试使用package:async/async.dart 包中的StreamZip 来合并流,像这样...

Stream<List<Order>> getData() {
     Stream<List<Order>>  stream1 = pendingStream();
     Stream<List<Order>>  stream2 = preparingStream();
    return StreamZip([stream1, stream2]);
}

但是它不会编译。说:

The element type 'Stream<List<Order>>' can't be assigned to the list type 'Stream<Order>'.

据我了解 StreamZip 应该接受这两个流?我哪里错了?

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    您正在创建一个 StreamZip&lt;T&gt;,它将像 refer in the documentation 一样发出其合并流的每个事件的 List&lt;T&gt;

    您的每个合并流都会发出 List&lt;Order&gt; 类型,这意味着您将创建一个合并流,该流将发出 ListList

    基本上,您只需将返回类型从Stream&lt;List&lt;Order&gt;&gt; 更改为Stream&lt;List&lt;List&lt;Order&gt;&gt;&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-15
      • 2020-01-14
      • 2020-05-09
      • 2014-03-16
      • 2023-01-22
      • 2019-11-16
      • 1970-01-01
      • 2021-12-23
      相关资源
      最近更新 更多