Связывание отправителей событий node.js с несколькими экземплярами - PullRequest
2 голосов
/ 24 февраля 2012

Если у меня есть класс, который слушает источники событий, разве это неправильная практика связывать каждый экземпляр?

function MyClass() {

    emitter.on('ready', function() {
    // do something
    });

}

myclass = new MyClass();

Если я вызываю emitter.on () несколько раз, это предупреждает меня.

(узел) предупреждение: возможна утечка памяти EventEmitter. 11 Слушатели добавлены. Используйте emitter.setMaxListeners () для увеличения лимита.

Предполагается ли, что источники событий должны быть связаны только один раз для каждого модуля вне экземпляров классов?

Если это не так, то как мне получить доступ к экземпляру класса при запуске событий?

Спасибо

1 Ответ

3 голосов
/ 24 февраля 2012

Предупреждение состоит в том, что вы подключаете 11 прослушивателей событий к событию ready на одном отправителе событий.

Обычно, когда вы прослушиваете одно и то же событие несколько раз на одном источнике событий, скорее всего, это ошибка. Например, скажем, у вас есть генератор событий http, если вы прослушиваете событие request 11 раз, что, вероятно, является ошибкой, вы хотите слушать и обрабатывать запрос только один раз.

Это инструмент отладки. Вы можете обойти это, выполнив

emitter.setMaxListeners(500); // or whatever you think is a sensible limit

...