我试图找到一个运算符,使我可以一步一步地处理forkJoin
和map
所执行的操作。
我的输入是一个长度可变的可观察对象数组,我想等到它们全部完成后,再从可以订阅的可观察输出中创建计算结果。
我还没有碰到一个可以满足这些要求并采用数组作为输入的方法。
下面是一个用例示例:
const observable1 = Rx.Observable.create(
(observer) => {
observer.onNext([1, 2, 3, 4]);
observer.complete();
}
);
const observable2 = Rx.Observable.create(
(observer) => {
observer.onNext([5, 6, 7, 8]);
observer.complete();
}
);
Rx.Observable.magigOperator([observable1, observable2])
.subscribe(
(result) => console.log
);
现在我想要得到的结果是
[1,2,3,4,5,6,7,8]
的输出;我可以通过使用
forkJoin
和map
并运行一个flatten函数来实现它,但是我想知道是否有单个运算符可以让我一次性完成此操作。谢谢。
最佳答案
您不必使用map
,只需将结果选择器函数作为forkJoin
的最后一个参数传递,例如:
Rx.Observable.forkJoin([observable1, observable2], _.concat)
另请注意,示例中的
observable1
和observable2
尚未完成,这会阻止forkJoin
发出结果。关于javascript - 结合forkJoin和map的RxJs V4运算符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44899724/