跳到主要内容
CNode

细节3:使用EventEmitter();事件模块,

社区
Zzhs077发布于 14 年前最后回复 13 年前
656410

当要定时调用某个函数可以使用EventEmitter,他会去注册你的事件到系统消息队列中去。 var emitter = new events.EventEmitter();//事件发射器 //创建http监听事件 emitter.on("RequestEvent", function (arg1, arg2) {

get(); //重复调用的函数

});

//请求服务器信息 function request() {

emitter.emit("RequestEvent", null, null);

}

查看回复

回复 (6)

J
jiyinyiyong#613 年前
引用 jiyinyiyong一直不明白 EventEmitter 模块能用在什么地方...

@saber 好像有点懂了... 比如 A 接收来自 B 的消息发起一个消息, 又有个 C 可能会等 A 的消息,, 然后关系变复杂了, 用回调写死了修改比较麻烦.. 于是用事件注册..

S
saber#514 年前
引用 jiyinyiyong一直不明白 EventEmitter 模块能用在什么地方...

@saber 曾经用emitter写过一个消息队列,通过emitter将消息分发到各个消息订阅者

J
jiyinyiyong#414 年前
引用 jiyinyiyong一直不明白 EventEmitter 模块能用在什么地方...

@saber 有具体到项目甚至功能上的例子么?

S
saber#314 年前

压根不是把你的事件注册到系统消息队列里, 跟系统消息队列没一点关系, 你看过emitter的源码吗?

S
saber#214 年前
引用 jiyinyiyong一直不明白 EventEmitter 模块能用在什么地方...

用在你写的API里想提供一些回调函数给别人,但又不想在你的代码里显示地去处理别人的回调,就在需要调用别人回调函数的时候发个事件信号, 由调用者自己决定要不要注册你的事件,我的理解是这样的

J
jiyinyiyong#114 年前

一直不明白 EventEmitter 模块能用在什么地方...

参与回复

登录后即可参与回复。登录