使用Rxjs,寻找更清晰的解决方案来组合阵列流

使用Rxjs,寻找更清晰的解决方案来组合阵列流

问题描述:

我的问题不在于有工作代码,但我的解决方案组合数据流似乎很脆弱,我相信Rxjs有更好的解决方案。以下是我写的内容和示例:使用Rxjs,寻找更清晰的解决方案来组合阵列流

var all$ = Rx.Observable.combineLatest(
    basicArray$, fastArray$, slowArray$, 
    function(basic, fast, slow){ 
     return basic.concat(fast).concat(slow); 
}); 

我的目标是三个 - >一个,只有当所有三个都是新的。

使用实用工具(如lodash的flatten法),你可以使用下面的完成相同的:

var all$ = Rx.Observable.combineLatest(basicArray$, fastArray$, slowArray$) 
    .map(_.flatten); 

看你最后的评论,不过,我不认为你的代码按预期工作。从combineLatest产生的流将在任何流发射后立即发射新项目。

根据您的描述,该zip运营商可能更合适:https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/zip.md

+0

.ZIP有意义做出更好的解决方案。感谢您的反馈 – jamesRH