RxJS如何一个接一个向服务器发送请求?

问题描述 投票:1回答:1

如何正确发送RxJS请求,当有4个不同的API端点时,我需要请求每个端点,直到前一个不返回数据。

模式是

Request 1 -> Return Void
Request 2 -> Returned data, stop working and return data
Request 3 -> Will fail

结果是

只有一个请求的结果。

我试过这样做。

req1$ = of(response);
req2$ = of(response);

req1$.pipe( flatMap((result) => {
   if (result) { return of(result); } else {return of([]);}
}));
rxjs rxjs5 rxjs6
1个回答
0
投票

我觉得你需要做一个手工链,类似于这样的。

const getValueFromServer$  = req1$.pipe(flatMap => result ? of(result) : firstFallback$);
const firstFallback$       = req2$.pipe(flatMap => result ? of(result) : secondFallback$)
const secondFallback$      = req3$.pipe(flatMap => result ? of(result) : req4$)

getValueFromServer$.subscribe(console.log)
© www.soinside.com 2019 - 2024. All rights reserved.