node中的异步编程思想

一.异步编程相关概念

从字面意思理解,程序中语句不再是从上往下顺序同步执行的编程就是所谓的异步编程了,之所以提出这个概念,很大程度上是因为同步编程阻塞后续代码的执行造成资源的浪费。对了,异步具体怎么实现的就没必要知道了,这些交给node底层的C/C++去吧


二.在异步编程中控制语句的执行顺序

虽然异步编程有它的好处,但也会给人带来一些困扰。目前应该有3种方法可以控制。
1.事件发布/订阅模式 
本质是将回调函数事件化。node中内嵌的event模块就是用于实现事件发布和订阅的,事件驱动编程也是node的核心概念,这个没什么好说的,在需要时 emit 就行。要注意的是1个事件最多只能绑定10个处理函数,想要绑定更多需要调用emitter.setMaxListener(0)或者设置为大于10的数
2.Promise/Deferred规范
在es6中有实现,比较简洁的是Promise/A规范,Promise是暴露给用户的接口,Defer用作后台处理,用法如下:
Promise.then(successFunc(){}, failFunc(){}, progressFunc(){})
3.流程控制库

通过第三方库实现,比较好用的有 async , step和 wind。在项目中我采用的是async库,series()、waterfall()、parallel()让我很是受用(0.0)


(PS:es3有两个异步函数,setTimeout和setInterval)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值