node中的异步编程思想
来源:互联网 发布:阿里云客服累吗 编辑:程序博客网 时间:2024/06/15 08:09
一.异步编程相关概念
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.流程控制库
从字面意思理解,程序中语句不再是从上往下顺序同步执行的编程就是所谓的异步编程了,之所以提出这个概念,很大程度上是因为同步编程阻塞后续代码的执行造成资源的浪费。对了,异步具体怎么实现的就没必要知道了,这些交给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
- node中的异步编程思想
- Node异步编程体验
- node.js异步编程
- Node.js 异步编程
- Node异步编程
- Node.js 异步编程
- Node -- 异步编程
- Node 初探异步编程
- node中的异步操作
- node中的异步
- nodejs的异步编程思想
- Node——异步编程
- Node.js[1] 异步编程
- node 异步编程Promise容器
- Node.js中的异步执行
- Node中的异步I/O
- 编程中的东方思想
- Node.js 异步编程之 Callback
- 端口转发访问内网ip
- 20170327——蓝桥杯正在做着,分享一点点自学的经验
- 01:最长上升子序列
- 正则表达式前端使用手册
- Spring中的一些面试题
- node中的异步编程思想
- VIM的字符串替换命令及VIM的配置
- C++11新特性emplace操作
- 283. Move Zeroes
- POJ 2125 Destroying The Graph
- 有一个已经排序号的数组。现在输入一个数,要求按原来的规律将它插入数组中。
- 学生排队
- java 的线程的生命周期
- PAT-天梯赛习题集-L3-013-非常弹的球