nodejs中async使用

waterfall , parallel ,  series  ,  eachSeries

//var async = require('async');

/***
*①
* 串行有关联 执行每个函数
* waterfall 前一个函数的输出作为后一个的输入
*
*
*/
// var a = 10;
// async.waterfall([
// function (cb) {
// console.log("getb")
// setTimeout(function () {
// if (a == 0) {
// cb(new Error("a不能为0"));
// } else {
// var b = 1 / a;
// cb(null, b); //在这里通过回调函数把b传给下一个函数,记得一定要加上null,才能调用数组中得下一个函数,否则,会直接调用最终的回调函数,然后结束函数,则后面的函数将不再执行
// }
// }, 1000);
// },
// function (b, cb) {
// setTimeout(function () {
// console.log("getc")
// var c = b + 1;
// cb(null, c);
// }, 1000);
// }
// ], function (err, result) {
// if (err) {
// console.log(err);
// } else {
// console.log('c:' + result)
// }
// }); /**
* ②并行且无关联
* parallel 并行无依赖
* 并行执行每个函数
*/ // async.parallel([
// //并行同时执行
// function(callback) {
// setTimeout(function() {
// callback(null, 'one');
// }, 200);
// },
// function(callback) {
// setTimeout(function() {
// callback(null, 'two');
// }, 100);
// }
// ],
//
// function(err, results) {
// //等上面两个执行完返回结果
// console.log(results[0]);
// console.log(results[1]);
// }); /***
* ③
* series 串行无关联执行函数组
*/
// console.time('series');
// var async = require('async');
//
// async.series({
// one: function (done) {
// //处理逻辑
// done(null, 'one');
// },
// two: function (done) {
// //处理逻辑
// done(null, 'tow');
// },
// three: function (done) {
// //处理逻辑
// done(null, 'three');
// },
// four: function (done) {
// //处理逻辑
// done(null, 'four');
// }
// }, function (error, result) {
// console.log('one:', result.one);
// console.log('two:', result.two);
// console.log('three:', result.three);
// console.log('four:', result.four);
// console.timeEnd('series');
// }) /**
* ④
* eachSeries 是一个个按顺序执行
* @type {[number,number]}
*/ // var arr = [300,600];
// async.eachSeries(arr, function(item, callback) {
// setTimeout(function(){
// console.log(item);
// //这个函数告诉eachSeries函数,这个异步操作状态,是成功了,还是失败了,传(false)null表示这个异步成功完成,true(1)执行失败,还未执行的不再执行
// callback(null);
// //callback("发生异常");
// }, item);
//
// }, function(err) {
// //所有的异步成功执行完成,err等于null
// console.log("成功执行了");
// });

async文档地址    https://caolan.github.io/async/docs.html#parallel

上一篇:JavaScript面试时候的坑洼沟洄——逗号、冒号与括号


下一篇:jQuery-强大的jQuery选择器、过滤器