珠峰培训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:‘)
})
时间: 2024-08-24 05:24:25

珠峰培训node正式课笔记 -- 【async】任务流程控制,异步流程控制的相关文章

珠峰培训node 珠峰爬虫| cron 定时任务

1.cron 定时任务 CronJob var CronJob = require('cron').CronJob; // 秒 分钟 时 天 ??? 周 // 1-30 * * * * * 1到30秒执行 // 1,3,5 * * * * * 1.3.5的时候执行 // */5 * * * * * 每5秒 var job = new CronJob('*/5 * * * * *',function(){ console.log(new Date().toString()) }) job.star

Node.js学习笔记(2)——关于异步编程风格

Node.js的异步编程风格是它的一大特点,在代码中就是体现在回调中. 首先是代码的顺序执行: function heavyCompute(n, callback) { var count = 0, i, j; for (i = n; i > 0; --i) { for (j = n; j > 0; --j) { count += 1; } }callback(count); } heavyCompute(10000, function (count) { console.log(count)

控制异步回调利器 - async 串行series,并行parallel,智能控制auto简介

async 作为大名鼎鼎的异步控制流程包,在npmjs.org 排名稳居前五,目前已经逐渐形成node.js下控制异步流程的一个规范.async成为异步编码流程控制的老大哥绝非偶然,它不仅使用方便,文档完善,把你杂乱无章的代码结构化,生辰嵌套的回掉清晰化. async 提供的api包括三个部分: (1)流程控制 常见的几种流程控制. (2)集合处理 异步操作处理集合中的数据. (3)工具类 . github 开源地址: https://github.com/caolan/async 安装方法:

七月算法--12月机器学习在线班-第三次课笔记—矩阵和线性代数

七月算法--12月机器学习在线班-第三次课笔记—矩阵和线性代数 七月算法(julyedu.com)12月机器学习在线班学习笔记 http://www.julyedu.com

七月算法--12月机器学习在线班-第五次课笔记—回归

七月算法--12月机器学习在线班-第五次课笔记—回归 七月算法(julyedu.com)12月机器学习在线班学习笔记 http://www.julyedu.com

七月算法--12月机器学习在线班-第一次课笔记—微积分与概率论

七月算法--12月机器学习在线班-第一次课笔记—微积分与概率论 七月算法(julyedu.com)12月机器学习在线班学习笔记 http://www.julyedu.com

七月算法--12月机器学习在线班-第六次课笔记—梯度下降和拟牛顿

七月算法--12月机器学习在线班-第六次课笔记—梯度下降和拟牛顿 七月算法(julyedu.com)12月机器学习在线班学习笔记 http://www.julyedu.com

【连载】创业能力培训第四课总结

创业能力培训第四课总结 以一个故事开头: 老师问:3加4等于多少? 学生答:3加4等于8 老师说了3句话: 1.很好! 2.离答案很接近了哦! 3.还有没有人有别的答案? 表扬,保持其积极性. 具备什么样的条件才能创业 一.明确的创业动机和目标 1.人无我有 2.人有我优 3.人优我特 二.熟悉所要创业的领域(行业.市场.客户等) 三.一定的创业资源(部分即可) 四.一定的知识技能 五.拥有创业精神 创业3要素: 1.机会 2.资源 3.团队 团队: 1.才能互补 2.责任共担 3.共同的创业目

七月算法--12月机器学习在线班-第四次课笔记—凸优化

七月算法--12月机器学习在线班-第四次课笔记—凸优化 七月算法(julyedu.com)12月机器学习在线班学习笔记 http://www.julyedu.com