Node.js中的唯一EventListener ID

时间:2012-10-15 14:42:48

标签: node.js javascript-events

我目前正在使用以下内容创建eventListeners:

client.on('data', function(data){
    // Lots of other functions etc..
});

我特别想知道的是,是否可以通过唯一ID识别此特定侦听器,以便我可以单独引用它?

此事件可能会随时打开多个实例,我希望能够根据接收到将引用此ID的特定数据事件来删除它们。现在的问题是,我不知道如何识别单个eventListeners。

谢谢!

1 个答案:

答案 0 :(得分:2)

您始终可以将侦听器功能存储到变量中,然后像这样添加或删除它:

var EventEmitter  = require('events').EventEmitter
    emitter       = new EventEmitter();

var addListener = function(id){
  var listener = function(){
    console.log("Listener", id);
    emitter.removeListener("test", listener);
  }
  emitter.on("test", listener);
}

addListener("a");
addListener("b");

emitter.emit("test");
// Listener a
// Listener b

通过使用引用侦听器函数的侦听器变量,您拥有唯一的id。在该范围内,您可以根据范围删除侦听器。