async.js 学习记录
2016-02-01 00:00
1426 查看
async.js 主要解决 node异步函数的流程控制。
常用的场景如下:
1. 多个异步依次顺序执行。如果有异常抛出时就立即执行回调函数, 回调函数的err为抛出的异常;如果没有异常抛出,当所有异步函数完成后,执行成功回调函数,err值为null, result 为异步数组的结果数组
async.series([
function(callback) {
doAsync1(arg, callback);
},
function(callback) {
doAsync2(arg, callback);
},
function(callback) {
doAsync3(arg, callback);
}
], function(err, result) {
console.log(result);
});
在线demo: http://jsbin.com/sisasu/edit?js,console,output
2.多个异步依次顺序执行,且后面异步函数的依赖前面异步函数的输出
async.waterfall([
function(callback) {
doAsync1(2, callback);
},
function(arg, callback) {
doAsync2(arg, callback);
},
function(arg, callback) {
doAsync3(arg, callback);
}
], function(err, result) {
console.log(result);
});
在线demo: http://jsbin.com/yozuje/edit?js,console,output
3.多个异步并行执行,当所有异步函数执行完成后执行回调函数,回到函数的参数为之前异步函数执行结果的数组,如果需要限制并行执行的数量可以使用parallelLimit
async.parallel([
function(callback) {
doAsync1(arg, callback);
},
function(callback) {
doAsync2(arg, callback);
},
function(callback) {
doAsync3(arg, callback);
}
], function(err, result) {
console.log(result);
});
在线demo: http://jsbin.com/mugixu/edit?js,console,output
数组相关
async.each(arr, doAsync, function(err, result){ console.log(result); }); // 等同于 async.each(arr, function(item, callback){ doAsync(item, callback); }, function(err, result){ console.log(result); });
在线demo: http://jsbin.com/supuko/edit?js,console,output
综合例子
http://segmentfault.com/n/1330000004401616
参考
相关文章推荐
- js学习记录8
- js小案例效果实现代码学习记录
- JS学习记录(一)
- 廖雪峰JS教程学习记录---数组详解
- JS权威指南学习记录(1) 包装对象
- async.js 学习教程(一)
- JS学习记录
- js基础知识相关学习笔记记录
- js 学习记录
- Ionic+angularjs 系列文章学习记录
- 我记录学习研究之前端开发一(js基于1.8版)
- js学习记录9
- async.js 学习教程(二)
- 2017.07.12 学习记录 js基础学习及代码
- angular2 学习笔记 ( Rxjs, Promise, Async/Await 的区别 )
- 廖雪峰JS教程学习记录----循环
- Node.js权威指南学习记录
- 学习记录—yii2页面引入、添加css样式及js特效
- 20110303 学习记录:js页面跳转
- JQuery.Tmpl.js学习记录