使用Rxjs,寻找一种更清晰的解决方案来组合数组流

时间:2016-03-07 13:46:54

标签: javascript rxjs

我的问题不在于使用代码,但我结合数组流的解决方案似乎很脆弱,我相信Rxjs有更好的解决方案。以下是我所写的例子:

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

我的目标是三个 - >只有当三个都是新的时才会出现。

1 个答案:

答案 0 :(得分:1)

使用实用程序(如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