相关疑难解决方法(0)

执行http请求时带有多个forkjoin的rxjs

我正在执行一些 http 请求并使用 rxjs 来成功通知结果:

  getReportings(departmentId: number): Observable<any> {
        return Observable.forkJoin(
            this.http.get('/api/members/' + departmentId).map(res => res.json()),
            this.http.get('/api/reports/' + departmentId).map(res => res.json())
        );
    }
Run Code Online (Sandbox Code Playgroud)

当两个 http 请求都完成后,我想在 getReportings 方法中迭代报告数组,读取一些值,并为每个报告再次使用这些值创建一个新的 http 请求。

总而言之,我有 2 个(成员/报告)+ appr。4 到 8 个(其他东西)请求。

当所有约。完成了 6 到 8 个请求我想从成功处理程序中的前 6 到 8 个请求中获取所有数据。

我怎样才能用 rxjs 做到这一点?

更新

由于用户 olsn 要求提供更多详细信息,我现在了解他的担忧,我将更多数据放在这里(伪代码)6 到 8 个请求应该是什么样子:

getReportings(departmentId: number): Observable<any> {
    return Observable.forkJoin(
        this.http.get('/api/members/' + departmentId).map(res => res.json()),
        this.http.get('/api/reports/' + departmentId).map(res => res.json())
    ).switchMap((result: [any[], any[]]) => {
        let …
Run Code Online (Sandbox Code Playgroud)

reactive-extensions-js rxjs angular2-http angular

1
推荐指数
1
解决办法
4539
查看次数