async的使用

作者: yuansc | 来源:发表于2015-09-15 14:46 被阅读2000次

    用过node.js 有时候一定会为js的异步问题感到头痛,
    之前写过一篇博客是用递归解决异步问题的,<a href="http://blog.csdn.net/yoyoysc/article/details/12688591">node.js使用递归解决异步性问题</a>
    这次要给大家介绍的是 一个第三方库 async

    安装

    npm install async
    

    引用

    var async=require('async');
    
    

    基本语法

    解决多个无关函数的异步问题
    async.series({
        1:function(done){
            console.log(1);
            done();
        },
        2:function(done){
            console.log(2);
            done();
        },
        3:function(done){
            console.log(3);
            done()
        }
    },function(err){
        console.log(err);
    })
    

    如上3个方法会依次执行,需要注意

    1. 当每个方法执行完之后,必须通过调用回调来表示已执行完当前方法,才会继续执行;
    2. 最后的是用来捕获异常,出现异常不会继续向下执行;
    大量相同数据的处理

    这跟上面的我写的递归解决是同样的思想,只不过代码更为简洁明了

    var array=[1,2,3,4,5]
    var itreator=function(item,finish){
        console.log(item);
        finish();
    }
    async.eachSeries(array,itreator,function(err){
        console.log("all finish");
    })
    

    上面代码中当出现异常,和所有执行结束后到会执行最后的

    console.log("all finish");
    

    跟之前的相似,出现异常不会向下执行,同样的对于正常情况下,只有所有数据都处理完后才会输入“all finish”;

    参考文献

    同样还有很多处理方式异步同步交叉使用等等吧,
    本人用的不是很多,
    还有其他的很多方法,这是我比较常用的,其他方式的使用请见 :
    <a href="https://github.com/caolan/async">官方github </a>
    <a href="https://github.com/alsotang/async_demo
    ">更多Demo</a>

    相关文章

      网友评论

        本文标题:async的使用

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