con-6ren">
gpt4 book ai didi

node.js - 首先完成一个 HTTP post 请求,然后再循环执行下一个 HTTP post 请求

转载 作者:太空宇宙 更新时间:2023-11-03 23:19:12 27 4
gpt4 key购买 nike

我有一个循环,每次循环时都会发出 HTTP post 请求。

for(let i = 1; i < this.data.length; i++) {
let arr = this.data[i];
this.http.post('link here', {
name: arr[0],
gender: arr[1],
course: arr[2],
year: arr[3]
}).subscribe(
(data: any) => console.log("succes at " + i),
error => console.log(error + "at" + arr[0])
);
}

但我发现它不会等待 HTTP post 完成就继续下一个循环并执行下一个 HTTP post。我想要实现的是先完成一个 HTTP post,然后再继续执行 HTTP post 的下一个循环。我不会实现这一点,因为我希望保存在数据库中的数据顺序与循环中数组的顺序相同。有什么想法如何去做吗?顺便说一句,我使用 anuglar 和 nodejs

最佳答案

您可以创建一个递归函数,如下所示

example(i, limit, data) {
let arr = this.data[i];
this.http.post('link here', {
name: arr[0],
gender: arr[1],
course: arr[2],
year: arr[3]
}).subscribe(
(data: any) => console.log("succes at " + i),
error => console.log(error + "at" + arr[0]),
() => ++i < limit ? this.example(i, limit) : null
);
}

要启动循环,请使用以下命令调用它:

this.example(0, this.data.length, this.data)

这样,在上一个订阅完成之前,不会调用 example 的下一次迭代

关于node.js - 首先完成一个 HTTP post 请求,然后再循环执行下一个 HTTP post 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51688828/

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