无法让 token.remove() 在 Facebook Emitter 中工作

Can't get token.remove() working in Facebook Emitter

本文关键字:Facebook Emitter 工作 token remove      更新时间:2023-09-26

知道为什么Facebook发射器不起作用token.remove()下面的电话:

安慰:

$ node main.js
5 10
/Users/carlf/Documents/dev/test/emitter/emit-node.js:21
token.remove();
      ^
TypeError: undefined is not a function

我的代码:

var {EventEmitter} = require('./node_modules/emitter');
var emitter = new EventEmitter();
var token = emitter.addListener('event', function(x, y) { console.log(x, y); });
emitter.emit('event', 5, 10);  // Listener prints "5 10".
token.remove();
emitter.emit('event', 9, 11); // nothing is logged

该错误告诉您删除不是一个函数。若要删除侦听器,需要调用该实例的 removeListener 方法,EventEmitter传递事件的名称和提供的回调。试试这个:

var {EventEmitter} = require('./node_modules/emitter');
var emitter = new EventEmitter();
function handler(x, y) {
  console.log(x,y);
}
emitter.addListener('event', handler);
emitter.emit('event', 5, 10);  // Listener prints "5 10".
emitter.removeListener('event', handler);
emitter.emit('event', 9, 11); // nothing is logged

我的错误是我输入了npm install emitter,应该npm install fbemitter'. What threw me was there were no error messages that made this obvious, looks like the core API calls are same in both packages. At least for addListener()and emit()'。

一旦我检查了"package.json"中的版本#和githubURL,我很快就想通了。