事件发射器,对象不是函数

Event emitter, object is not function

我在 node.js 中创建了一个事件,但是当我尝试触发该事件并将参数传递给回调时,我得到了 eventEmitter("dataIn", null, message); TypeError: object is not a function。查看类似的堆栈溢出问题,问题不是使用 new 来创建 eventEmitter,但我是。

首先我设置了事件。

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

然后我设置回调

 function dataIn(config, callback) {
   if(typeof callback === 'function') {

     /* Set the callback for the dataIn event. */
     eventEmitter.on("dataIn", callback);

     /* More code below. */

最后,当我尝试发出事件时,出现了类型错误。

var message = {
  "type": "REQUEST"
}

var rtrn = eventEmitter("dataIn", null, message);
if(rtrn === false) {
  console.log('Error triggering event');
}

EventEmitter 实例不是函数;你正试图称呼它,就好像它是。您需要调用 .emit() 方法:

eventEmitter.emit("dataIn", null, message);