【发布时间】:2015-05-24 16:26:40
【问题描述】:
我在 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("dataIn", message)触发事件吗? -
我也是这么想的,但它不起作用,然后我看到了这个答案stackoverflow.com/questions/30419064/… 然后它起作用了。我认为第一个参数是为错误保留的。
-
嗯,是的,我的意思是
emit部分,但如果你的回调是用通常的 Node 方式编写的,接受像foo(error, response)这样的参数,你必须将null作为错误传递还有 -
我明白了,我错过了第一次阅读您的评论。
-
谢谢 2trill2spill 你解决了我的问题,因为你说很多其他与 EventEmitter 问题相关的问题是他们没有用 new 实例化它。
标签: javascript node.js events event-handling