如何并行调用2个API,然后在RXJS中调用第三个



我想在并行中进行两次API调用,然后立即进行第三次调用。我能够使用合并映射和连续使用concatMap并行运行API调用。我想把两者结合起来。

//Call API1 and API2 in Parallel
// from([apiCall(1), apiCall(2)]).pipe(
//   mergeMap(e=>e)
// ).subscribe(x => console.log(x));
//Call API1 and API2 consecutively
// from([apiCall(1), apiCall(2)]).pipe(
//   concatMap(e=>e)
// ).subscribe(x => console.log(x));
//Call API1 and API2 in Parallel and API 3 right after both finishes
from([apiCall(1), apiCall(2), apiCall(3)]).pipe(
// ????
).subscribe(x => console.log(x));

我怎么能这样做?

Stackblitz游乐场在此=>https://stackblitz.com/edit/playground-rxjs-263xwk

您可以将forkJoin用于并行请求。

forkJoin([apiCall(1), apiCall(2)]).pipe(
concatMap((response) => apiCall(3).pipe(
map((res) => [...response, res])
))
).subscribe((response) => {
response[0]; // result from apiCall(1)
response[1]; // result from apiCall(2)
response[2]; // result from apiCall(3)
})

最新更新