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