rxjs传递forkjoin一个函数,该函数返回一个可观察值数组

时间:2019-01-08 00:48:20

标签: javascript angular rxjs

我有一个函数,它返回一个Observables数组

function getMultipleObservables() {
    let coordinationObservables: Observable<any>[] = [];
    coordinationObservables.push(Observable.of([1,2,3,4]))
    coordinationObservables.push(Observable.of([1,2,3,4]))
    return coordinationObservables
}

代码链的另一部分是多个可观察对象,如下所示:

this.someService.flatMap(()=>{
    return Observable.forkJoin((getMultipleObservables())=>{
        //handle the responses
    })
}).subscribe(()=>{

})

所以我的问题是如何正确地将函数作为参数传递给forkJoin,并在回调函数中对其进行处理。

1 个答案:

答案 0 :(得分:2)

使用spread运算符。

return Observable.forkJoin(...getMultipleObservables()).map((data) => {
     // do something, write your code here
     // later subscribe it wherever it is returning
     // using map() like this is works for rxjs < 5.5,
     // use it under pipe() if you have a higher version
     // like: forkjoin(...getMultipleObservables()).pipe(map());
     return modifiedData // if modified, else no need to add map
})