Javascript 将观察对象链接到ajax调用队列列表

Javascript 将观察对象链接到ajax调用队列列表,javascript,asynchronous,rxjs,angular2-observables,Javascript,Asynchronous,Rxjs,Angular2 Observables,我有一个动态的Ajax URL数组,并尝试按顺序对调用进行排队。成功完成第一个调用后,将执行第二个ajax调用,或者如果结果失败,则将结束执行循环。这样,它将完成阵列直到结束 对于RxJS observables,我们有选项吗?当然,concat是该作业的正确创建函数。它被传递一个可观察的列表,并依次完成它们。如果其中任何一个失败,将发送一个错误通知,该通知可在subscribe功能中处理。该链在发生错误后立即完成,从而防止触发后续Ajax调用 一个例子如下所示: concat(...urls.

我有一个动态的Ajax URL数组,并尝试按顺序对调用进行排队。成功完成第一个调用后,将执行第二个ajax调用,或者如果结果失败,则将结束执行循环。这样,它将完成阵列直到结束


对于RxJS observables,我们有选项吗?

当然,
concat
是该作业的正确创建函数。它被传递一个可观察的列表,并依次完成它们。如果其中任何一个失败,将发送一个错误通知,该通知可在
subscribe
功能中处理。该链在发生错误后立即完成,从而防止触发后续Ajax调用

一个例子如下所示:

concat(...urls.map(
    url => this.http.get(url))
).subscribe(
    next => console.log("An Ajax call has finished"),
    error => console.log("An Ajax call has gone wrong :-( "),
    complete => console.log("Done with all Ajax calls")
)
concat
的代码如下:

创建一个输出可观察对象,该输出可观察对象依次发出给定可观察对象的所有值,然后移动到下一个可观察对象


使用
concatMap
顺序获取数据,但使用
mergeMap
异步处理数据的示例

从“rxjs”导入{from};
从“rxjs/operators”导入{concatMap,map,catchError,tap,mergeMap};
常量URL=[
"https://randomuser.me/api/",
"https://geek-jokes.sameerkumar.website/api",
"https://dog.ceo/api/breeds/image/random"
];
来自(URL)
.烟斗(
concatMap(url=>{
log(“=>从url获取数据”,url);
返回获取(url);
}),

点击(response=>console.log(“=谢谢,似乎是一个简单的解决方案,您能帮助提供一个工作模型吗?非常感谢。