在另一个observable中使用flatMap

时间:2018-01-30 08:31:40

标签: angular typescript rxjs observable

我有这个功能:

public getAssignedOrganizations() : Observable<any> {
    return this.http.get(this.settings.backend.assignedOrganizations)
        .flatMap((org) => {
            return this.http
                .get(this.settings.backend.warehousesByOrg + org.organization_id)
                .map((res: any) => res.json());
        })
        .catch((error:any) => Observable.throw(error || 'Server error'));
}

org将返回一个对象数组,因此flatMap无法理解该参数。如何迭代第一个HTTP请求(org)的响应,以便我可以调用第二个HTTP?我做错了什么?

1 个答案:

答案 0 :(得分:0)

map运算符将在flatMap

之后被链接
public getAssignedOrganizations() : Observable<any> {
  return this.http.get(this.settings.backend.assignedOrganizations)
                  .flatMap((org) => {
                      return this.http.get(this.settings.backend.warehousesByOrg + org.organization_id)
                  })
                  .map((res: any) => res.json());                    
                  .catch((error:any) => Observable.throw(error || 'Server error'));
}