使用promise发出的nodejs并行请求导致io异常

时间:2016-10-07 06:06:42

标签: node.js promise

我在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);
  }); 
}

0 个答案:

没有答案