我有下一个场景。
单打列表:A,B,C。每个请求都是服务器请求,列表大小不是固定的,可以是任意大小。
我的问题:我需要调用A,然后在收到响应后执行B,然后在收到响应后执行C ...,直到完成所有调用。
>我需要这样的内容: A通话-> A响应-> B通话-> B响应-> C通话-> C响应...
但是使用concat我有: A呼叫-> B呼叫-> C呼叫-> A响应-> B响应-> C响应...
所以它不起作用,因为在我得到A响应之前,B Call已被执行。
我不知道该使用什么运算符来完成此操作。我正在使用Java,但这更多是一个Rx逻辑/知识问题,因此使用其他语言进行的任何响应也可能很有用。
答案 0 :(得分:1)
请提供您正在尝试的一些代码,但是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