Reputation: 1499
Is it possible to use Node.js EventEmitter in two different files without subclassing the EventEmitter?
I have tried this:
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
});
This does not work. I guess that is because two instances of the event emitter exists and they are not connected.
Can I achieve similar behaviour without subclassing the EventEmitter?
(I am new to Node.js)
Upvotes: 2
Views: 536
Reputation: 1649
No need to subclass, you just need to use the same event emitter. In your example you have two different event emitters.
Like this:
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');
Upvotes: 1