珠峰培训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证书培训笔记-附(大数据项目实战)-可做为简单课设