Предположим, следующий сценарий:
//Where "e" is a global object in the app
e = new EventEmitter;
...
//at some place in the app code I'm adding Listener 1
e.on('myEvent', function() {console.log('Listener 1)});
...
//at another place in the app code I'm adding Listener 2
e.on('myEvent', function() {console.log('Listener 2)});
...
//at another place in the app code I'm adding Listener N
e.on('myEvent', function() {console.log('Listener N)});
...
//finally in some place I'm emitting "myEvent"
e.emit('myEvent', p1, p2);
В тот момент, когда выполняется «e.emit ('myEvent', p1, p2)», мой код контролируетУзел основного потока (не цикл событий).И функция «emit» является синхронной, поэтому «emit» вызывает в этот самый момент каждого из слушателей, подключенных к «myEvent» (в приведенном выше примере N слушателей).Таким образом, фактически, вызов "e.emit ('myEvent', p1, p2)" эквивалентен выполнению следующих вызовов в традиционной императивной парадигме:
Listener1(p1,p2);
Listener2(p1,p2);
...
ListenerN(p1,p2);
И если N большое, I 'Я блокирую цикл событий, потому что его текущий код контролирует основной поток, а не цикл событий.
Этот сценарий верен и возможен?По этой причине по умолчанию Node.js имеет максимум 10 слушателей?
Заранее спасибо!