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

Javascript 事件发射器,对象不是函数,javascript,node.js,events,event-handling,Javascript,Node.js,Events,Event Handling,我在node.js中创建了一个事件,但是当我尝试触发事件并将参数传递给回调时,我得到了eventEmitter(“dataIn”,null,message);TypeError:对象不是函数。查看类似的堆栈溢出问题,问题不是使用new创建eventEmitter,而是我 首先,我设置事件 var events = require('events').EventEmitter; var eventEmitter = new events(); 然后我设置回调 function dataIn

我在node.js中创建了一个事件,但是当我尝试触发事件并将参数传递给回调时,我得到了
eventEmitter(“dataIn”,null,message);TypeError:对象不是函数
。查看类似的堆栈溢出问题,问题不是使用
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);

我可能错了,但触发事件的不是
eventEmitter.emit(“dataIn”,message)
?我也这么认为,但它不起作用,然后我看到了这个答案,然后它就起作用了。我认为第一个参数是为错误保留的。嗯,是的,我指的是
emit
部分,但如果您的回调是以通常的节点方式编写的,接受
foo(error,response)
之类的参数,您也必须将
null
作为错误传递,我看到了,我错过了第一次读你的评论。谢谢你2第二次。你解决了我的问题,因为你说很多其他与EventEmitter问题相关的问题是他们没有用new实例化它。