Показать сообщение отдельно
  #1 (permalink)  
Старый 09.04.2022, 12:00
Аватар для fxobject
Кандидат Javascript-наук
Отправить личное сообщение для fxobject Посмотреть профиль Найти все сообщения от fxobject
 
Регистрация: 01.03.2021
Сообщений: 138

EventEmitter + Node
Имеем несколько модулей с разными задачами, слабо связанные по функциональности между собой. Им всем необходим некий механизм оповещения (например через websocket) о результате своей деятельности (возникающих ошибках). Предположительно можно было создать одного слушателя EventEmitter, который бы собирал все сообщения и дальше уже по правилам обмена делал бы доставку в другие системы.
Но вот в чем вопрос, экземпляр такого класса должен быть доступен всем остальным модулям. Т.е. нельзя создать слушателя с сообщением 'ERROR', и в каком то модуле сделать
emitter = new EventEmitter();
emitter.emit('ERROR', {text:' error '} );
только через экземпляр ранее созданного класса EventEmitter который делает отправку. Достигнуть это можно только через предоставление экземпляра через глобальный контекст.
Фактически я могу в том же контексте создать нужный мне обработчик - функцию и все взаимодействие модулей через через ее вызовы
Вопрос - и в чем разница? В глобальном контексте экземпляр или функция?
Может что то недопонимаю? Подскажите студенту, спасибо
Ответить с цитированием