您的位置:首页 > 其它

异步流程控制工具的使用方法

2019-02-08 16:30 302 查看

使用之前,需要先去安装这个模块 http://caolan.github.io/async/

npm i async -D
创建 modules/async.js 文件

var async = require(“async”);

// 串行无关联
/*
第一个参数:数组,装有串行的函数
第二个参数:回调函数
【注】等待第一个函数调用完成以后,再去调用第二个函数。
*/
console.time(“test”);

/*async.series([
function(callback){
setTimeout(function(){
callback(null, “one”);
}, 2000);
},
function(callback){
setTimeout(function(){
callback(null, “two”);
}, 5000);
}
], function(err, results){
console.log(results);
console.timeEnd(“test”);

})*/

/*
串行无关联的第二个用法
*/
/async.series({
one: function(callback){
setTimeout(function(){
callback(null, “1”)
}, 2000);
},
two: function(callback){
setTimeout(function(){
callback(null, “2”);
}, 5000);
}
}, function(err, results){
console.log(results);
console.timeEnd(“test”);
})/

/*
并行无关联

两个函数同时执行,任务结束以结束时间最长的那个任务决定。
【注】当然这个任务也可以通过对象的方式传参

*/

/*console.time(“test”);

async.parallel([
function(callback){
setTimeout(function(){
callback(null, “one”);
}, 2000);
},
function(callback){
setTimeout(function(){
callback(null, “two”);
}, 5000);
}
], function(err, results){
console.log(results);
console.timeEnd(“test”)
})*/

/*
串行有关联
*/

async.waterfall([
function(callback){
callback(null, “one”, “two”);
},
function(arr1, arr2, callback){
callback(null, arr1, arr2, “three”);
},
function(arr1, arr2, arr3, callback){
callback(null, [arr1, arr2, arr3, “done”]);
}
], function(err, results){
console.log(results);
})

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: