async.parallel是流程控制里边io并行的控制方法,如果async.parallel里边没有io操作,那么里边的函数执行都是串行的。
这里讨论一下参数接收的问题,上代码:
var async = require('async');
function process1(cb){
var tx1 = {address:'dadada'};
var total1 = 1;
return cb(null,tx1,total1);
}
function process2(cb){
var tx2 = {address:"qweweee"};
var total2 = 2;
return cb(null,tx2,total2);
}
async.parallel([
function(done){
process1(done);
},
function(done){
process2(done);
}
],function(err,tx,total){
console.log(tx[0][0])
console.log(tx[0][1]);
console.log(tx[1][0]);
console.log(tx[1][1]);
//console.log(total[0]);
//console.log(total[1]);
});
可以看到process1和process2都有三个参数,我们接收的时候是不是也是用三个参数去接收呢?其实不是,除了第一个err之外,只需要一个接受参数就可以了,如果有多余的,那么他是以数组的形式来展示的,上面代码的运行结果是:
{ address: 'dadada' }
1
{ address: 'qweweee' }
2