01Как устроен event loop в Node.js?
Event loop живёт в библиотеке libuv и проходит по кругу несколько фаз. Timers выполняет колбэки setTimeout и setInterval. Poll ждёт и обрабатывает I/O. Check выполняет setImmediate. Есть ещё служебные фазы: pending callbacks, idle/prepare и close callbacks
В старых статьях timers стоит первой фазой. С Node.js 20 (libuv 1.45) таймеры в каждой итерации проверяются после poll, а до входа в цикл запускаются один раз. Если расскажешь про это, интервьюер точно оценит
После каждого колбэка Node выполняет микрозадачи. В CommonJS сначала идёт очередь process.nextTick, потом промисы. Пока микрозадачи не закончатся, цикл дальше не двинется, поэтому рекурсивный nextTick может вообще не пустить I/O