是否可以在两个不同的文件中使用 Node.js EventEmitter,而不需要子类化 EventEmitter?
我已经尝试过这个:
文件1.js
var EventEmitter = require('events').EventEmitter;
var emitter = new EventEmitter();
emitter.emit('eventFromFile1');
文件2.js
var EventEmitter = require('events').EventEmitter;
var emitter = new EventEmitter();
emitter.on('eventFromFile1', function(){
console.log('Received event'); // Never happens
});
这不起作用。我猜这是因为事件发射器的两个实例存在并且它们没有连接。
我可以在不继承 EventEmitter 的情况下实现类似的行为吗?
(我是 Node.js 新手)
最佳答案
无需子类化,只需使用相同的事件发射器即可。在您的示例中,您有两个不同的事件发射器。
像这样:
文件1.js
var EventEmitter = require('events').EventEmitter;
var emitter = module.exports.emitter = new EventEmitter();
emitter.on('my_event', function(){
console.log('Received event'); // Never happens
});
文件2.js
var emitter = require('./File1.js').emitter;
emitter.emit('my_event');
关于javascript - 使用 Node.js EventEmitter 而不使用子类化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32350637/