2017-03-20 32 views
0

我有一個函數使用async.parallel函數來調用兩個函數。但是當我使用async.parallel時,我不知道如何處理錯誤。如果兩個函數中的一個拋出錯誤,我該如何處理它們?async.parallel中的錯誤處理

exports.getProductconfigWithProductList = function(req, res){ 

var apiVersion = req.param('version', null); 
var product_id = req.params.productId; 
dbDriver = determineDriver('es'); 

async.parallel([ 
     function(callback) { 
      dbDriver.getProductconfig(product_id,function(data){ 
       callback(null, data); 
      }); 
     }, 
     function(callback) { 
      var productListPromise = getProductListData(); 
      productListPromise.then(function(data) { 
       callback(null, data); 
      }); 
     } 
    ], 
    function(err, results) { 
     if(!err){ 
      var data = results[0]; 
      data[1] = results[1]; 
      res.send(data); 
      res.end(); 
     } else { 
      console.log('<<<<<<<<<<<<<<'+err+'>>>>>>>>>>>>>>>'); 
      res.send(err); 
      res.end(); 
     } 

    } 
); 
}; 

回答

1

當你有:

async.parallel([ 
    func1, 
    func2, 
], (err, data) => { 
    if (err) { 
     // you handle the errors here 
    } 
}); 

它更詳細地說明在docs:

,並在GitHub上的問題在這裏:

+0

所以對我的回調在每個函數定義是什麼?我可以只調用回調(數據)沒有null,仍然可以捕獲錯誤,如果(錯誤)? –

+0

我想知道如何實現錯誤處理。不是理論部分。我不知道如何處理這些錯誤。如果我從回調中刪除'null',它將無法正確執行。 –