Объясните event loop в Node.js. Какие у него фазы?
Event loop по кругу обрабатывает очереди завершённых операций по фазам: таймеры для setTimeout и setInterval, отложенные колбэки, poll для входящего I/O, check для setImmediate и колбэки закрытия. Между каждой фазой Node вычерпывает очередь микрозадач — сначала process.nextTick, затем колбэки промисов. Именно поэтому долгая синхронная функция блокирует все запросы на сервере: пока она не вернётся, не выполнится ничего.