天天看点

node.js学习笔记(7) 事件机制

在web前端的编程中,事件的应用十分广泛,dom上的各种事件,比如onclick 、onfocus等等。

在ajax大规模应用之后,异步请求更是得到广泛的认同,而ajax亦是基于事件机制的。

node.js的事件机制是基于v8引擎实现的事件驱动i/o,充分呢利用了异步i/o解决了单线程编程模型的性能瓶颈。

<b>事件机制的实现</b>

node.js内置了events模块,events模块(events.eventemitter)是一个简单的事件监听器模式的实现。具有addlistener/on,once,removelistener,removealllisteners,emit等基本的事件监听模式的方法实现。

第一个events示例,events-1.js:

运行events-1.js:

这是一个简单的示例,restaurant监听了两个事件"order"和"pay",顾客点菜和埋单时分别触发order和pay。

第二个events示例,假设点菜需要12个步骤,该怎么办?

events-2.js:

因为order有12个步骤,所以我们添加了12个order事件。

运行结果:

虽然成功完成了12个步骤,但是nodejs在添加第11个order时发出警告。这是因为events默认最大监听数量是10个(同一个事件,不同事件则没有限制)。

改进一下吧,events-3.js:

再看运行结果:

perfact !

继续阅读