我在nodeJS中使用Promise向外部apis发送并行请求,因为我想提高获取速度。在Mac中,它很好,所有请求都可以并行发送,但是在centos7 nodeJS中,我注意到了这个错误:
[错误:EIO,i / o错误]错误:55,代码:'EIO',系统调用:'写'
为什么发生此异常?
这是我使用的代码:
var parallelFetcher = function(url, body, req, cb){
var promises = [];
var error = null;
Object.keys(body).forEach(function(key){
promises.push(new Promise(function(resolve){
wrapper.post( url, JSON.parse(body[key]), req, function(err, data){
if(!err)
resolve(data);
else
error = err;
})
}));
});
Promise.all(promises).then(function(results){
var keys = Object.keys(body);
var resultObj = {};
for(var i=0; i<keys.length; i++){
resultObj[keys[i]] = results[i];
}
cb(error, resultObj);
});
}