Javascript Node.js中的并行函数调用

Javascript Node.js中的并行函数调用,javascript,node.js,function,asynchronous,Javascript,Node.js,Function,Asynchronous,我需要在Node.js中执行一些独立的数据库查询。执行所有查询后,应发送响应。我的第一次尝试如下所示: templateData = {}; model.getA(function(result) { templateData.A = result; model.getB(function(result) { templateData.B = result; model.getC(function(result) {

我需要在Node.js中执行一些独立的数据库查询。执行所有查询后,应发送响应。我的第一次尝试如下所示:

templateData = {};

model.getA(function(result) {
    templateData.A = result;

    model.getB(function(result) {
        templateData.B = result;

        model.getC(function(result) {
            templateData.C = result;

            response.send('template', templateData);
        })
    })
});
当然,Node.js中的这种方法一点也不好,因为所有函数都是按顺序调用的,我失去了异步编程模式的优势。我是Node.js新手,现在还不清楚如何并行调用
getA()
getB()
getC()
,并在完成所有操作后发送响应。是否有一些真正简单和通用的方法来实现这一点?

使用:(
npm安装异步

或者,您可以使用:


(假设
get*()
方法返回承诺)

您可以使用一个函数来检查是否所有数据都作为您的查询回调存在,如果所有数据都存在,则可以发送响应。大概是

function checkData(){
    if (templateData.A && templateData.B && templateData.C){
        //send your response
    }
}
那就别打电话了

model.getA(function(result){
    templateData.A = result;
    checkData();
}

model.getB(function(result){
    templateData.B = result;
    checkData();
}

model.getC(function(result){
    templateData.C = result;
    checkData();
}

当所有三个都完成后,将发送您的回复

谢谢,这正是我想要的!
function checkData(){
    if (templateData.A && templateData.B && templateData.C){
        //send your response
    }
}
model.getA(function(result){
    templateData.A = result;
    checkData();
}

model.getB(function(result){
    templateData.B = result;
    checkData();
}

model.getC(function(result){
    templateData.C = result;
    checkData();
}