使用Node.js的EventEmitter没有子类
是否有可能在两个不同的文件中使用Node.js EventEmitter,而无需inheritanceEventEmitter?
我试过这个:
File1.js
var EventEmitter = require('events').EventEmitter; var emitter = new EventEmitter(); emitter.emit('eventFromFile1');
File2.js
var EventEmitter = require('events').EventEmitter; var emitter = new EventEmitter(); emitter.on('eventFromFile1', function(){ console.log('Received event'); // Never happens });
这不起作用。 我想这是因为事件发生器的两个实例存在,他们没有连接。
如果没有inheritanceEventEmitter,我可以实现类似的行为吗?
(我是Node.js的新手)
不需要子类,你只需要使用相同的事件发射器。 在你的例子中,你有两个不同的事件发射器。
喜欢这个:
File1.js
var EventEmitter = require('events').EventEmitter; var emitter = module.exports.emitter = new EventEmitter(); emitter.on('my_event', function(){ console.log('Received event'); // Never happens });
File2.js
var emitter = require('./File1.js').emitter; emitter.emit('my_event');