async.parallel() – 最后一个函数没有被调用

出于某种原因,当我按照下面的方式使用async.parallel()时,从不打印'yyyyyyyyy'string。 为什么是这样? 我以为最后一个函数会被调用,一旦另外两个被调用。

var async = require('async'); async.parallel([ function() { console.log('xxxxxxxxxxx'); }, function() { console.log('ccccccccccc'); } ], function(err, results){ console.log('yyyyyyyyy'); }); 

async.parallel的第一个参数中传递的每个function async.parallel应该接受一个callback function ,当它完成之后, async知道它已经完成:

 var async = require('async'); async.parallel([ function(callback) { console.log('xxxxxxxxxxx'); callback(); }, function(callback) { console.log('ccccccccccc'); callback(); } ], function(err, results){ console.log('yyyyyyyyy'); }); 

如果其中一个函数发生错误,它应该调用callback functions

 callback(err); 

以便async知道发生了错误,并立即调用最后一个function