在node.js的循环中执行asynchronous方法并等待结果

在下面的代码中,只有当所有asynchronouscallback完成后,我如何才能使console.log(output)执行?

var output = []; for (var i = 0; i < x; i++) { asyncMethodWithCallback(param, function(error, result){ output.push(result); }); } console.log(output); 

如果输出的日志是相同的,则检查输出的长度

 var output = []; for (var i = 0; i < x; i++) { asyncMethodWithCallback(param, function(error, result){ output.push(result); if(output.length == x){ asyncComplete(); } }); } function asyncComplete(){ console.log(output); }