gpt4 book ai didi

node.js - 错误 : connect ETIMEDOUT at TCPConnectWrap. afterConnect [as oncomplete]

转载 作者:搜寻专家 更新时间:2023-11-01 00:35:33 24 4
gpt4 key购买 nike

我正在尝试使用 XMLHttpRequest 模块在 for 循环中异步调用 REST API。我在 1 个循环中发出 400 个请求,每 100 个请求后等待 1 秒。这在客户端 JavaScript 上运行良好。但是,当我使用相同的模块在 NodeJS 上运行时(它不是本地可用的,我必须从 npmjs 下载),大约 230 个请求后出现此错误。知道是否有另一个模块可以用来更好地处理这种批量 API 请求吗?

Error: connect ETIMEDOUT at TCPConnectWrap.afterConnect [as oncomplete]

最佳答案

我终于找到了解决问题的方法。

使用request模块调用REST API时,需要在options中指定pool变量。这作为maxsockets,它是并发请求处理的声明。

下面为遇到此问题的人发布了示例代码:

有关更多信息,请查看以下帖子: How to use Request js (Node js Module) pools

var separateReqPool = {maxSockets: 20};
var request = require('request');
var url_array = ['url1','url2','url3'];//Array of all the urls to call


async.map(url_array, function(item, callback){
request({url: item, pool: separateReqPool}, function (error, response, body) {
//Do Something with the response
});
}, function(err, results){
console.log(results);
});
}).
catch((err) => {
console.log(err);
});

关于node.js - 错误 : connect ETIMEDOUT at TCPConnectWrap. afterConnect [as oncomplete],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53339823/

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