细节3:使用EventEmitter();事件模块,
当要定时调用某个函数可以使用EventEmitter,他会去注册你的事件到系统消息队列中去。 var emitter = new events.EventEmitter();//事件发射器 //创建http监听事件 emitter.on(“RequestEvent”, function (arg1, arg2) {
get(); //重复调用的函数
});
//请求服务器信息 function request() {
emitter.emit("RequestEvent", null, null);
}
6 回复
用在你写的API里想提供一些回调函数给别人,但又不想在你的代码里显示地去处理别人的回调,就在需要调用别人回调函数的时候发个事件信号, 由调用者自己决定要不要注册你的事件,我的理解是这样的
压根不是把你的事件注册到系统消息队列里, 跟系统消息队列没一点关系, 你看过emitter的源码吗?
@saber 曾经用emitter写过一个消息队列,通过emitter将消息分发到各个消息订阅者