async模块是为了解决嵌套金字塔,和异步流程控制而生.常用的方法介绍
1.安装 npm install async --save
2.引入 var async = require('async')
1 | var async = require('async') |
//series: 串行执行,一个函数数组中的每个函数,每一个函数执行完成之后才能执行下一个函数。
//parallel:并行(parallel) 并行无关联 一个函数数组中的每个函数同步执行。
没有使用async的串行查询数据库
1 | DB.find('user',function(){ |
使用async的串行查询数据库
串行series
1.数组方式
console.time()
console.timeEnd()//打印执行时间1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36console.time('test');
async.series([
function(callback){ /*异步*/
setTimeout(function(){
callback(null,'one')
},2000)
},
function(callback){ /*异步*/
setTimeout(function(){
callback(null,'two')
},3000)
}
,
function(callback){ /*异步*/
setTimeout(function(){
callback(null,'three')
},1000)
}
],function(err,data){
console.timeEnd('test')
console.log(data);
})
2.对象方式
1 | console.time('list'); |
并行 paraller
1 | //并行 |