gpt4 book ai didi

javascript - Angular 发出多个 http 请求,但在发出新请求之前等待每个请求完成

转载 作者:行者123 更新时间:2023-11-30 06:20:05 24 4
gpt4 key购买 nike

在 Angular 应用程序中,我有一个包含 url 属性的文字对象数组。我需要为这些对象中的每一个发出一个 http 请求,但是一个接一个。

例子:

let arr = [
{url: 'http://example.com/url1'},
{url: 'http://example.com/url2'},
{url: 'http://example.com/url3'}
]

(这是一个例子,可能更多的是物体,不知道有多少)

现在,我想向第一个 url 发出请求,当我们收到它的响应(或错误,无关紧要)时,然后我想向第二个 url 发出请求,等等。知道如何有效地实现它吗?

我不想一次发出这些请求 - 每个请求都应该在上一个请求成功或失败后才发出。

最佳答案

一个可能的解决方案是使用concatMaptoArrayswitchMapTo

所以首先你有一个 url 列表:

let arr = [{url: 'http://example.com/url1'},{url: 'http://example.com/url2'}]

然后将它们转换为 Observable:

of(arr)
.pipe(
concatMap(r=> http.get(r.url)), //MAKE EACH REQUEST AND WAIT FOR COMPLETION
toArray(), // COMBINE THEM TO ONE ARRAY
switchMapTo(http.get("FINALURL") // MAKE REQUEST AFTER EVERY THING IS FINISHED
)).subscribe()

关于javascript - Angular 发出多个 http 请求,但在发出新请求之前等待每个请求完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53738007/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com