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
。