Почему не приходят сообщения через node EventEmitter?
Подскажите, почему не приходят сообщения через node EventEmitter, когда производитель и потребитель находятся в разных файлах? В случае когда файл один - проблем нет.
Смотрите пример:
// event.js
const EventEmitter = require('events')
const EVENT = 'EVENT'
const _ = require('lodash')
const tmp = _.memoize(() => {
return new EventEmitter()
})
const event = tmp()
function producer(data) {
event.emit(EVENT, data)
}
function customer(cb) {
event.on(EVENT, cb)
}
module.exports = {
producer,
customer,
}
и два файла с импортами
// producer.js
const { producer } = require('./event')
producer('test')
// customer.js
const { customer } = require('./event')
customer((data) => {
console.log(data)
})
new Promise((resolve) => setTimeout(resolve, 5000)).then(() => console.log('end')).catch((e) => console.log(e))
Сначала я запускаю код в файле customer.js, потом producer.js