使用 Rxjs,寻找用于组合数组流的更清洁的解决方案

Using Rxjs, looking for a cleaner solution for combining array streams

我的问题不是工作代码,而是我组合数组流的解决方案似乎很脆弱,我相信 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