Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 颤振:流生成器在输入observable1.mergeWith([observable2]时无法正常工作_Dart_Flutter_Reactivex - Fatal编程技术网

Dart 颤振:流生成器在输入observable1.mergeWith([observable2]时无法正常工作

Dart 颤振:流生成器在输入observable1.mergeWith([observable2]时无法正常工作,dart,flutter,reactivex,Dart,Flutter,Reactivex,我想合并两个可观察对象或流,作为流生成器的流式输入,用这些流式对象构建listview 我试过了 observable1.mergeWith([observable2]) 但lsit视图仅显示了可观察2。 如果我链接另一个可观察对象,如observed1.mergeWith([observed2]).mergeWith([observed3])或observed1.mergeWith([observed2,observed3]) 这只让我看到了obervable3 我试过concatwith,

我想合并两个可观察对象或流,作为流生成器的流式输入,用这些流式对象构建listview

我试过了

observable1.mergeWith([observable2])
但lsit视图仅显示了可观察2。 如果我链接另一个可观察对象,如
observed1.mergeWith([observed2]).mergeWith([observed3])或observed1.mergeWith([observed2,observed3])

这只让我看到了obervable3

我试过concatwith,combinelatest2,但没有效果。任何解决办法

我也试过了

Observable.combineLatest2(
                         Observable1, Observable2, (a, b) {
                         print("lengtsdfsdf"+a.length);
                        print("lengtsdfsdf"+b.length);
                        return List.from(a)..addAll(b);
                       }); // Here the Obsevables are of type Observable<List<obj>> 
Observable.combinerelatest2(
可观察的1,可观察的2,(a,b){
打印(“lengtsdfsdf”+a.length);
打印(“长度DFSDF”+b.长度);
返回列表。从(a)…添加全部(b);
}); // 在这里,可观测的是可观测的类型

我认为这里的问题在于,当Firebase的响应到达时,每个流都会发出一个事件,其中的数据是条目的集合

一个事件示例是来自
流的结果a
['a','b','c']

StreamB
中的一个事件是
['e','f','g']

您似乎期望从
Observable.merge()
中看到的是

['a', 'b', 'c', 'e', 'f', 'g'],
但实际上它会发出两个事件。
首先

然后

['e', 'f', 'g'].
flatter/StreamBuilder
首先使来自第一个事件的数据呈现,然后,当第二个事件到达小部件时,将使用来自第二个事件的数据重新构建它

Observable.scan
操作符允许您将多个事件中的数据合并到单个事件中

['e', 'f', 'g'].