Eu sou um grande fã de sublinhado/lodash, então eu costumo usar
_.after
, que cria uma função que só é executada após ser chamada um certo número de vezes. var finished = _.after(2, doRender);
asyncMethod1(data, function(err){
//...
finished();
});
asyncMethod2(data, function(err){
//...
finished();
})
function doRender(){
res.render(); // etc
}
Já que o javascript eleva a definição de funções definidas com a
function funcName()
sintaxe, seu código lê naturalmente:de cima para baixo.