gpt4 book ai didi

javascript - 在 Angular 6 中一一处理多个 http 响应

转载 作者:太空狗 更新时间:2023-10-29 18:28:38 24 4
gpt4 key购买 nike

实际上,我有 15 个发送到 API 的 http 请求。我想一个一个地处理响应,并在请求结束时打印一个响应。

服务端:

    findOneByOne(): Promise<any> {
const promises = [];

this.getCardsPath().forEach(element => {
promises.push(this.getPromises(element));
});
return Promise.all(promises)
.then((res) => res)
.catch(err => err);
}

getPromises(str: String): Promise<any> {
return this.requester.obtain({
restUrl: "/administration/" + str,
method: RequestMethod.Get
})
.toPromise()
.then(res => this.checkInfoService(res.json()))
.catch(err => err);
}

组件端:

display() {
this.dashboardInfoService.findOneByOne()
.then((res) => {
const tab = [];
for (let i = 0; i < res.length; i++) {
tab.push(res[i][0]);
}
this.findPaths(tab);
this.loadItems(tab);
})
.catch((err: any) => {
if (environment.debugLevel >= 3) console.error(err);
});
}

我是 Angular 的初学者,所以我真的不知道如何处理多个 promise。

预先感谢您的协助:)

最佳答案

试试这个:

findOneByOne() {
const calls = this.getCardsPath().map(el => this.getPromises(el));
forkJoin(calls).subscribe(responses => {...});
}

responses 将包含从第一次调用到最后一次调用的所有响应:responses[0] 将是第一个元素的响应,依此类推。

关于javascript - 在 Angular 6 中一一处理多个 http 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52967510/

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