Javascript 事件发射器,对象不是函数
我在node.js中创建了一个事件,但是当我尝试触发事件并将参数传递给回调时,我得到了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
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实例化它。