Dart 颤振:流生成器在输入observable1.mergeWith([observable2]时无法正常工作
我想合并两个可观察对象或流,作为流生成器的流式输入,用这些流式对象构建listview 我试过了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,
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'].