Rxjs 如何执行多个单选,但仅在上一个单选完成后才移动到下一个单选?

Rxjs 如何执行多个单选,但仅在上一个单选完成后才移动到下一个单选?,rxjs,rx-java2,system.reactive,Rxjs,Rx Java2,System.reactive,我有下一个场景 单子列表:A、B、C。每个单子都是一个服务器请求,列表大小不是固定的,可以是任意大小 我的问题是:我需要调用A,当我有响应时,执行B,当我有响应时,执行C。。。直到完成所有通话 我需要这样的东西:A呼叫->A应答->B呼叫->B应答->C呼叫->C应答 但是使用concat我有这样的功能:A调用->B调用->C调用->A响应->B响应->C响应 所以它不起作用,因为B调用在我得到A响应之前已被执行 我不知道用什么操作符来完成这个。我正在使用Java,但这更像是一个Rx逻辑/知识问

我有下一个场景

单子列表:A、B、C。每个单子都是一个服务器请求,列表大小不是固定的,可以是任意大小

我的问题是:我需要调用A,当我有响应时,执行B,当我有响应时,执行C。。。直到完成所有通话

我需要这样的东西:A呼叫->A应答->B呼叫->B应答->C呼叫->C应答

但是使用concat我有这样的功能:A调用->B调用->C调用->A响应->B响应->C响应

所以它不起作用,因为B调用在我得到A响应之前已被执行


我不知道用什么操作符来完成这个。我正在使用Java,但这更像是一个Rx逻辑/知识问题,因此任何其他语言的响应也可能有用。

请提供一些您正在尝试的代码,但concatMap正是您想要的-在订阅下一个之前,等待上一个Observable完成,并按顺序执行此操作:

of('A', 'B').pipe(
  concatMap(val => Promise.resolve(`${val} Http call`)),
  tap(console.log)
).subscribe(() => console.log('done'))
原木


谢谢,我仍然有一些问题,这是更复杂的事情的一部分,但这是非常有帮助的!
A Http call
done
B Http call
done