当所有的任务完成后,async.parallel仍然会调用最后的callback函数,如果其中任何一个得到错误?
var async = require('async'); async.parallel([ function(cb) { cb(true); }, function(cb) { cb(null, true); }], function(error, results) { } );
在代码中,如果第一个任务在第二个任务之前运行cb(true),第二个任务是否仍然运行? 如果是这样,完成后,主callback仍然会被调用?
async.parallel
并行执行所有function。 如果任何函数将错误传递给它的callback函数(callback函数的第一个参数不为空),那么主callback函数会立即调用错误的值。 所有的function将被执行。
用下面的代码你的执行如下1, 3, 2, 2.1
:
var async = require('async'); async.parallel([ function(cb) { console.info('1') cb(true); }, function(cb) { console.info('2') cb(null, true); }, function(cb) { console.info('2.1') cb(null, true); }], function(error, results) { console.info('3') } );
是的,第二个任务被调用(因为任务预计是asynchronous并立即退出)。 async.parallel
callback被调用,从第一个失败的任务错误