Прочитав десятки статей и документов, описывающих цикл событий Node.js, например, предоставленный самими Node.js: https://nodejs.org/en/docs/guides/event-loop-timers-and-nexttick/
Я просто не могу обдумать это: ПОЧЕМУ цикл обработки событий требует нескольких фаз, каждая из которых имеет свои очереди обратного вызова?
Все документы и статьи описывают фазы цикла в терминах "эта фаза делает то же самое и выполняет обратные вызовы, заданные с помощью X или Y", но в действительности никогда не объясняет, ПОЧЕМУ эти отдельные очереди необходимы в первую очередь.
Почему обратные вызовы setTimeout()
или setImmediate()
или замыкания сокетов должны выполняться в другой точке, чем фаза опроса, где предположительно подавляющее большинство обратных вызовов выполняется?
если очередь обратного вызова на этапе опроса исчерпана до перехода к следующему этапу, в любом случае, почему бы просто не иметь одну очередь, которая прерывается для каких-либо действий, не связанных с очередью, выполняемых на других этапах?