在async.parallel中处理错误

时间:2017-03-20 13:08:54

标签: node.js

我有一个使用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 个答案:

答案 0 :(得分:2)

当你有:

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

在文档中有更详细的解释:

在GitHub上的问题中: