var async = require('async');
async.parallel([
function(cb) {
cb(true);
},
function(cb) {
cb(null, true);
}],
function(error, results) {
}
);
在代码中,如果第一个任务在第二个任务之前运行cb(true),第二个任务是否仍会运行?如果是这样,完成后,主回调仍然会被调用吗?
答案 0 :(得分:10)
async.parallel
并行执行所有功能。如果任何函数将错误传递给其回调(回调第一个参数不为null),则使用错误值调用主回调立即。所有功能都将被执行。
使用以下代码,您的执行将如下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')
}
);
答案 1 :(得分:1)
是的,调用第二个任务(因为任务应该是异步的并立即退出)。从第一个失败的任务
调用async.parallel
回调时出错