使用 rxjs 调用多个 API 并将其 return 作为可观察的

Call multiple API using rxjs and return it as obserable

我有 4 个 API 设 A、B、C、D,我想将所有 4 个 API 的数据组合成单个可观察数据。

我想使用 forkJoin([A,B]) 并使用 forkJoin 的响应进入 forkJoin([C,D])。 示例:

return forJoin([a,b]).pipe(map result=>{
 return forkJoin([c(a.result),d(a.result,b.result)]);
})

问题是我只收到 C 和 D API 响应。 任何人都可以帮助我。

首先应该有一个 switchMap 用于 return 内部 forkJoin。如果您还想 return ab 响应,您可以只使用 of 原始结果:

return forkJoin([a,b]).pipe(
  switchMap(result => {
    return forkJoin([c(result[0]),d(result[0], result[1]), of(result)]
  })
})

现在你得到了所有 3 个结果的数组,最后一个是第一个响应的数组