Почему не приходят сообщения через 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


Ответы (0 шт):