Слушатель событий и источник событий - отдельные файлы - PullRequest
0 голосов
/ 20 мая 2019

У меня есть три файла:

my_emitter.js : экземпляр объекта EventEmitter для совместного использования (давайте назовем это «myEmitter»)

listener.js : где myEmitter.on () называется

registration_handler.js : где myEmitter.emit () называется


Слушатель не получает отправленное событие.

Используя следующий код, я запускаю сначала node listener.js, а затем node registration_handler.js second.

my_emitter.js

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

listener.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');

Консоль (из listener.js):

Ожидаемое

$ node listener.js
worked!
Done

Фактический

$ node listener.js
Done

1 Ответ

1 голос
/ 20 мая 2019

Чтобы это работало, вы должны запустить их в одном и том же процессе Node.js, для этого вы можете создать новый файл и оттуда требовать как слушателя, так и излучателя.

// another-file.js

require('./listener');
require('./registration_handler.js');

Выполнениеэтот новый файл должен дать вам ожидаемые результаты:

$ node another-file.js
worked!
Done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...