nodejs中文教程-事件的监听与事件的触发

nodejs中文教程 12年前 (2012) 工具猫
3,104 0

为了解释nodejs里的事件监听与触发机制,举一个较为容易懂的例子。

这个例子的名字,叫做条件反射实验。条件反射的实验过程,我简单的说一下,就是每天给一只狗喂食的同时,就摇铃铛。时间久了。这个狗就会形成了条件反射。 你一摇铃铛,狗就过来了。

nodejs中文教程-事件的监听与事件的触发

 

其中 emitter 为事件的主体,比如这个例子中是一只狗, 它是对事件的响应者。

在nodejs中,每个 emitter 都是  events.EventEmitter 类(姑且称为类吧,虽然JS里没类)的一个实例。

同样我们这只乖乖的狗狗也是,定义如下。

var events=require("events");
var dog=new events.EventEmitter();

和普通的 Object 相比, events.EventEmitter 具有 addListener(或者写成on) , 和 emit 方法。

function bark(){
console.log("wang wang!!!");
}
dog.addListener("RingRing",bark);  // 为狗狗添加一个条件反射,只要一听到 "RingRing" 的铃铛响,就执行 bark;
dog.emit("RingRing");  //听到 "RingRing"

输出:

wang wang!!!

可见,每次 dog 接受到 RingRing 这个事件的时候, 就会自动触发 bark 函数,从而输出 "wang wang!!!" 。

不知道大家是否理解了呢?

最后给出 emitter 的其它几个函数,大家可以去了解下,比如如何去除事件监听的函数。

nodejs中文教程-事件的监听与事件的触发

 

版权声明:工具猫 发表于 2012-12-09 19:08:12。
转载请注明:nodejs中文教程-事件的监听与事件的触发 | 工具猫