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 的其它几个函数,大家可以去了解下,比如如何去除事件监听的函数。