async流程控制函数

作者: seafruit | 来源:发表于2016-10-17 09:46 被阅读18次

    asyncJavaScript的扩展库。它可以简化Node.js异步操作的书写,使代码更容易被读懂,而不是嵌套一堆的括号让人头大。
    我们可以使用Node.js的包管理器npm直接安装它,在shell中输入:

    npm install async
    

    这里主要说一下async的流程控制函数。

    series函数 串行执行

    它的作用就是按照顺序依次执行。

    async.series({
        one: function(callback){
            callback(null, 1);
        },
        two: function(callback){
            callback(null, 2); 
        }
      },function(err, results) { 
            console.log(results);
    });
    

    输出:{one: 1, two: 2}

    series函数的第一个参数可以是一个数组也可以是一个JSON对象,参数类型不同,影响的是返回数据的格式。

    **waterfall函数 **瀑布流

    waterfall每个函数产生的值,都将传给下一个函数.

     waterfall 的 tasks 参数只能是数组类型。
    当有函数出错,其err直接传给最后的callback,出错函数的结果被舍弃,出错函数后面的函数不再执行。
    

    parallel函数 并行执行多个函数

    parallel(tasks, [callback]),
    每个函数都是立即执行,不需要等待其它函数先执行。传给最终callback的数组中的数据按照tasks中声明的顺序,而不是执行完成的顺序。

    tasks参数可以是一个数组或是json对象。
    和series函数一样,tasks参数类型不同,返回的results格式会不一样。
    

    parallelLimit函数 并行执行有个数限制的函数

    parallelLimit(tasks, limit, [callback])
    limit参数限制任务只能同时并发一定数量,而不是无限制并发。

    查看demo
    https://github.com/seafruit/asyncStudy

    相关文章

      网友评论

      • b1a32d00d4d8:那如果只有一个函数要执行,应该使用哪一个?

      本文标题:async流程控制函数

      本文链接:https://www.haomeiwen.com/subject/xgmayttx.html