Node.js 错误:在TCPConnectWrap.afterConnect处连接ETIMEDOUT[作为oncomplete]

Node.js 错误:在TCPConnectWrap.afterConnect处连接ETIMEDOUT[作为oncomplete],node.js,rest,api,Node.js,Rest,Api,我正在尝试使用XMLHttpRequest模块在for循环中异步调用RESTAPI。我在一个循环中发出400个请求,每100个请求后等待1秒。这在客户端JavaScript上运行良好。然而,当我使用相同的模块在NodeJS上运行时(它本机不可用,我必须从npmjs下载),我在大约230个请求后收到这个错误。你知道我是否可以使用另一个模块来更好地处理这个批量API请求吗 错误:在TCPConnectWrap.afterConnect[as oncomplete]处连接ETIMEDOUT 我终于找到

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

错误:在TCPConnectWrap.afterConnect[as oncomplete]处连接ETIMEDOUT


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

使用请求模块调用RESTAPI时,需要在选项中指定池变量。这充当maxsockets,它是并发请求处理的声明

下面是运行到此问题的用户的示例代码:

有关更多信息,请查看以下帖子:

var separateReqPool={maxSockets:20};
var请求=要求(“请求”);
变量url_数组=['url1'、'url2'、'url3']//要调用的所有URL的数组
map(url\u数组,函数(项,回调){
请求({url:item,pool:separateReqPool},函数(错误,响应,正文){
//对回应做点什么
});
},函数(错误,结果){
控制台日志(结果);
});
}).
捕获((错误)=>{
控制台日志(err);

}); 我使用了这个博客中提到的KeepAliveEvent,但是仍然得到这个错误。奇怪的是,它是如何在客户端而不是服务器端工作的。可能我应该使用不同的模块,而不是XMLHttprequest。超时所在的模块(net.js:1161:14)。完整错误如下所示:错误:在TCPConnectWrap.afterConnect[as oncomplete](net.js:1161:14)处连接ETIMEDOUT 15.125.324.173:443,获得类似{错误:在TCPConnectWrap.afterConnect[as oncomplete](net.js:1082:14)的错误errno:'ETIMEDOUT',代码:'ETIMEDOUT',系统调用:'connect',地址:xxx.xxx.xx,端口:3010}