node.js使用async完成同步调用

node.js让初学者最头疼之处,莫过于彻头彻尾的异步机制。所有代码,在排版上的先后顺序并不决定了其调用顺序。然而人的思维恰恰是按照同步顺序流转的,于是令人叫苦不迭的情况应运而生——你理所当然的编写了一段看似顺序执行的代码,激动一run,哎哟我滴妈——null、颠倒的值、莫名的值不约而同的结伴而至。历经数次磨难,我对node的异步机制有了一定认识,能规避新手坑了。当然,想全面避坑光理解异步还不够,因为有时你必须使用同步执行,两个方法必须有先后顺序才能达到特定功效。async包为我们提供了node下的同步执行方法。

首先,在需要使用同步调用的文件引入async(之前要先npm install async,在此不赘述):

var async = require('async');

之后,将要顺序执行的方法放入async的series方法中:

async.series([function(cb){//your code here},function(cb){//your code here}],function(){//your code to be run at last});

格式为async.series(arrays,done);,arrays是要执行的代码数组,每段代码要被function(cb){}包裹,done是最后无论如何都会执行的代码,相当于java中finally的作用。

最后有一个重点说明:cb相当于一个执行标志,每一个代码段都由cb控制,cb在哪就代表在这之前的代码都必须被顺序执行到才能进入下一个代码段,这对于控制带有回调函数的代码的顺序执行至关重要。下面举个我自己项目的例子:

/*
添加一个用户
 */
exports.addAUser = 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值