珠峰培训node正式课笔记 -- async任务流程控制,异步流程控制

Posted 刘金宇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了珠峰培训node正式课笔记 -- async任务流程控制,异步流程控制相关的知识,希望对你有一定的参考价值。

var async = require(async);
// series 串形任务
console.time(cost)
async.series({
    two:function(callback){
        setTimeout(function(){
            console.log(串形任务two);
            //第一个参数 错误原因,当为真时,接收函数err参数接收到原因,并定为报错,停止执行后边的任务
            callback(null,串形任务two 执行完毕);
        },1000)
    },
    one:function(callback){
        setTimeout(function(){
            console.log(串形任务one);
            callback(null,串形任务one 执行完毕);
        },2000)
    },
},function(err,seriesRes){//如果callback第一个参数为真,err接收到第一个参数,判为任务错误,终止后续任务
    console.log(err,seriesRes);
    console.timeEnd(cost)
})

//parallel 并行任务
// 传递给最终的回调函数的是按任务生命顺序排列,而不是完成顺序
console.time(cost_p)
async.parallel({
    two:function(callback){
        setTimeout(function(){
            console.log(并行任务two);
            //第一个参数 错误原因,当为真时,接收函数err参数接收到原因,并定为报错,停止执行后边的任务
            callback(null,并行任务two 执行完毕);
        },1000)
    },
    one:function(callback){
        setTimeout(function(){
            console.log(并行任务one);
            callback(null,并行任务one 执行完毕);
        },2000)
    },
},function(err,seriesRes){//如果callback第一个参数为真,err接收到第一个参数,判为任务错误,终止后续任务
    console.log(err,seriesRes);
    console.timeEnd(cost_p)
})

// waterfall 瀑布形任务
console.time(cost_w)
async.waterfall([
    function(callback){
        setTimeout(function(){
            console.log(瀑布形任务 1);
            //第一个参数 错误原因,当为真时,接收函数err参数接收到原因,并定为报错,停止执行后边的任务
            callback(null,咖啡);
        },1000)
    },
    function(res,callback){
        setTimeout(function(){
            console.log(瀑布形任务 2);
            callback(null,res++加糖);
        },1000)
    },
    function(res,callback){
        setTimeout(function(){
            console.log(瀑布形任务 3);
            callback(null,res++加牛奶);
        },1000)
    }
],function(err,seriesRes){//如果callback第一个参数为真,err接收到第一个参数,判为任务错误,终止后续任务
    console.log(err,seriesRes);
    console.timeEnd(cost_w)
})

//auto 多情况组合任务
// 例:做饭任务
console.time(做饭任务cost:)
async.auto({
    water:function(callback){
        callback(null,)
    },
    flour:function(callback){
        callback(null,面粉)
    },
    mix:[water,flour,function(res,callback){
        callback(null,res.water+"+"+res.flour++和面);
    }],
    stream:[mix,function(res,cb){
        cb(null,res.mix++蒸馒头)
    }]
},function(err,seriesRes){
    console.log(err,seriesRes);
    console.timeEnd(做饭任务cost:)
})

 

以上是关于珠峰培训node正式课笔记 -- async任务流程控制,异步流程控制的主要内容,如果未能解决你的问题,请参考以下文章

珠峰JavaScript培训VIP精品课程(价值14800)

靠着阿里进阶面试地测(珠峰版)Java面试笔记,拿下12家大厂offer

Python1+x证书培训笔记-附(大数据项目实战)-可做为简单课设

Python1+x证书培训笔记-附(大数据项目实战)-可做为简单课设

化身offer收割机拿下12家大厂offer,全靠阿里内部(珠峰版)Java面试笔记

Node.js V10.0.0 正式发布