我试图找到一个运算符,使我可以一步一步地处理forkJoinmap所执行的操作。

我的输入是一个长度可变的可观察对象数组,我想等到它们全部完成后,再从可以订阅的可观察输出中创建计算结果。

我还没有碰到一个可以满足这些要求并采用数组作为输入的方法。

下面是一个用例示例:

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]的输出;
我可以通过使用forkJoinmap并运行一个flatten函数来实现它,但是我想知道是否有单个运算符可以让我一次性完成此操作。

谢谢。

最佳答案

您不必使用map,只需将结果选择器函数作为forkJoin的最后一个参数传递,例如:

Rx.Observable.forkJoin([observable1, observable2], _.concat)


另请注意,示例中的observable1observable2尚未完成,这会阻止forkJoin发出结果。

关于javascript - 结合forkJoin和map的RxJs V4运算符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44899724/

10-10 21:45