Node 异步控制器 Async

nodejs是基于异步的写法,但是有时候当我们查询数据库的时候 我们需要上一个函数的返回值做参数,这样就陷入了回调地狱。 之前写api时候遇到 我需要for循环查询数据库 然后放在数组里 返回给前端。最后用到了 Async.GitHub地址

安装Async

npm install async

串行无关联

多个函数或方法要依次执行,但是他们之间并没有什么联系,只有先后的顺序,比如我要写一个文件,写完之后像用户发送邮件,这两者之间没有必然的联系,但是发邮件必须在写文件完成之后。
async里有一个方法series可以实现这一流程,代码实现如下:

var async = require('async');
console.time('series');
async.series({
    one: function(callback) {
        callback(null, 'one');//callback('i am err','one');异常处理
    },
    two: function(callback) {
        callback(null, 'two');

    },
}, function(error, result) {
    //最后结果
    console.log('error: ' + error);
    console.log('result: ' + result);
    console.timeEnd('series');
});

串行有关联

多个函数或方法执行,每一步执行时都需要上一步执行的结果当参数,所以就会有串行等待。async里有waterfall可以实现此场景:

var async = require('async');
console.time('waterfall');
async.waterfall([
    function(callback) {
        callback(null, 'one');
    },
    function(onearg, callback) {
        callback(null, onearg + '>>>two');
    },
    function(twoarg, callback) {
        callback(null, twoarg + '>>>three');
    },
    function(threearg, callback) {
        callback(null, threearg + '>>>four');
    }
], function(error, result) {
    console.log('error: ' + error);
    console.log('result: ' + result);
    console.timeEnd('waterfall');
});

继续学习中...

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,174评论 19 139
  • 单线程与异步 Javascript是单线程运行、支持异步机制的语言。进入正题之前,我们有必要先理解这种运行方式。 ...
    贝聊科技阅读 3,751评论 0 0
  • ———————————————回答好下面的足够了---------------------------------...
    恒爱DE问候阅读 5,734评论 0 4
  • 杰家里没有女儿。同事们都赶着生二胎,有生儿子的,有生女儿的。杰弟家女儿多,便告诉老四说:小四,你就是老爹的女儿。生...
    王新屏阅读 1,855评论 0 1
  • “一个屋檐下,你和她平静淡如水”“从来没爱过,彼此也只是凑合着” 1 到了该结婚的年纪,没遇上那个该结婚的人,浑浑...
    YIBAO阅读 23,785评论 10 25

友情链接更多精彩内容