gpt4 book ai didi

javascript - Node.js 请求 - 处理多个 POST 请求

转载 作者:行者123 更新时间:2023-12-01 03:08:44 37 4
gpt4 key购买 nike

我使用请求库通过 API 与其他服务器进行通信。但现在我需要同时发送多个(10 个或更多)POST 请求,并且只有在所有响应都正确的情况下才能进一步前进。通常语法看起来有点像这样:

var options = {
url: "",
method: "POST",
header: {...},
body: {...}
};

request(options, function(err,response,body)
{
}

但现在我有了一个对象数组,而不是单个选项变量。有没有办法做到这一点?或者也许有另一个库能够处理这个问题。

编辑:

var arrayOfIds = [];
const requests = [];
for(var i in range){
var options = {} // here goes all bodies and headers to send
requests.push( // push a request to array dynamically
request(options, function(err,response,body){
if(!err && response.statusCode == 201){
arrayOfIds.push(body.id);
}
}));

Promise.all(requests)
.then(function(res){
console.log(arrayOfIds); // this is empty
});

最佳答案

有几种方法可以解决这个问题:

  • 异步库,方法并行
  • Promise.all

要将您的请求切换为 Promise,请使用 request 模块 - request-promise。在代码中它将如下所示:

const request = require('request-promise');

// Note, you don't assign callback here
const promises = [
request.post({...}),
request.post({...}),
request.post({...})
];

// And then you simply do Promise.all
Promise.all(promises).then(console.log);

关于javascript - Node.js 请求 - 处理多个 POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45995585/

37 4 0
文章推荐: javascript - 递减进度条
文章推荐: javascript - fullpage.js:在容器内使用鼠标指针滚动时禁用页面滚动
文章推荐: javascript - 避免 ImmutableJS Map 将数组转换为 List
文章推荐: javascript - 如何定位特定的标签?