事件侦听器和事件发射器单独的文件



我有三个文件:

my_emitter.js :要共享的EventEmitter对象的实例(让我们将其引用为" myemitter"(

listerer.js :when

registration_handler.js :whend myemitter.emit((称为


听众没有收到发射事件。

使用以下代码,我首先运行node listener.js,然后运行node registration_handler.js秒。

my_emitter.js

const EventEmitter = require('events');
const myEmitter = new EventEmitter();
exports.emitter = myEmitter;

listerer.js

const emitterFile = require('./my_emitter');
const myEmitter = emitterFile.emitter;
myEmitter.on('test', (res) => {
    console.log('worked!');
});
//within 5s, let's run registration_handler.js to emit the event
setTimeout(console.log, 5000, 'Done');

registration_handler.js

const emitterFile = require('./my_emitter');
const myEmitter = emitterFile.emitter;
myEmitter.emit('test');

控制台(来自Leculer.js(:

预期

$ node listener.js
worked!
Done

实际

$ node listener.js
Done

才能使其工作,您必须在同一node.js进程中运行它们,为此,您可以创建一个新文件,并且需要从那里开始的侦听器和发射器。

// another-file.js
require('./listener');
require('./registration_handler.js');

运行此新文件应为您提供预期的结果:

$ node another-file.js
worked!
Done

相关内容

  • 没有找到相关文章

最新更新