2

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

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

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

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

谢谢!

4

1 回答 1

3

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

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,因为你有一个引用监听器函数的监听器变量。在该范围内,您可以根据范围删除侦听器。

于 2013-07-01T10:11:56.053 回答