1.异步的串行执行
async.series([
function(cb){
setTimeout(function(){
console.log('执行1');
cb(null,'a');
},1000)
},function(cb){
setTimeout(function(){
console.log('执行2');
cb(null,'b');
},1000)
},function(cb){
setTimeout(function(){
console.log('执行3');
cb(null,'c');
},1000)
}
],function(err,results){
console.log(results)
})
//依次打印 执行1 执行2 执行3 ['a','b','c'];
//异步函数按添加顺序执行,在异步函数回掉中通过cb函数保存结果。
//最终的回调函数执行时,之前保存的结果会以数组的方式传入
2.异步并行执行
async.parallel([
function(cb){
setTimeout(function(){
console.log('执行1');
cb(null,'a');
},4000)
},function(cb){
setTimeout(function(){
console.log('执行2');
cb(null,'b');
},1000)
},function(cb){
setTimeout(function(){
console.log('执行3');
cb(null,'c');
},1000)
}
],function(err,results){
console.log(results)
})
//打印 执行2 执行3 执行1 ['a','b','c']
3.异步函数的依赖处理
async.waterfall([
function(cb){
setTimeout(function(){
cb(null,'来自第1个函数','xxx')
},5000)
},
function(arg,arg2,cb){
console.log(arg)
console.log(arg2)
setTimeout(function(){
cb(null,'来自第2个函数')
},1000)
},
function(arg,cb){
console.log(arg)
cb(null,'last')
}
],function(err,result){
console.log(result)
})
//依次打印 来自第1个函数 xxx 来自第2个函数 last
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。