async 是JavaScript的扩展库。它可以简化Node.js异步操作的书写,使代码更容易被读懂,而不是嵌套一堆的括号让人头大。
我们可以使用Node.js的包管理器npm直接安装它,在shell中输入:
npm install async
这里主要说一下async的流程控制函数。
series函数 串行执行
它的作用就是按照顺序依次执行。
async.series({
one: function(callback){
callback(null, 1);
},
two: function(callback){
callback(null, 2);
}
},function(err, results) {
console.log(results);
});
输出:{one: 1, two: 2}
series函数的第一个参数可以是一个数组也可以是一个JSON对象,参数类型不同,影响的是返回数据的格式。
**waterfall函数 **瀑布流
waterfall每个函数产生的值,都将传给下一个函数.
waterfall 的 tasks 参数只能是数组类型。
当有函数出错,其err直接传给最后的callback,出错函数的结果被舍弃,出错函数后面的函数不再执行。
parallel函数 并行执行多个函数
parallel(tasks, [callback]),
每个函数都是立即执行,不需要等待其它函数先执行。传给最终callback的数组中的数据按照tasks中声明的顺序,而不是执行完成的顺序。
tasks参数可以是一个数组或是json对象。
和series函数一样,tasks参数类型不同,返回的results格式会不一样。
parallelLimit函数 并行执行有个数限制的函数
parallelLimit(tasks, limit, [callback])
limit参数限制任务只能同时并发一定数量,而不是无限制并发。
网友评论