问题描述
我有一系列可观察变量(HTTP POST请求),在特定事件发生后,我需要将它们发送给API。以下是该方法的简化示例,其中我使用concat
,以便可以利用成功,错误和完整的回调。
// build up an array of stored POST requests to fire off later
// array is indeterminate length,Could be 1 request Could be 1,000
let requests = [ req1,req2,req3,req4 ];
concat(...requests).subscribe(
success => ... handle success ...
error => ... handle error ...
() => ... handle completion ...
);
问题是concat基本上一次发送所有请求,从而增加了消耗请求的API中发生并发问题的可能性。如果我能够一次(而不是一次)触发请求,则应该解决此问题。我确定forEach
循环不是一个选择。
是否存在一种RxJS方法,使得req2
仅在req1
完成之后发出,而req3
仅在req2
完成之后发出,依此类推?我一直在审查RxJS文档,但尚未找到适合这种情况的任何内容。