В чём разница между process.nextTick() и setImmediate()?
process.nextTick ставит колбэк в очередь до перехода event loop к следующей фазе, вперёд микрозадач промисов. setImmediate планирует колбэк на фазу check следующей итерации. Поэтому nextTick всегда срабатывает раньше, а рекурсивные вызовы nextTick могут полностью заморить event loop — из-за чего setImmediate безопаснее как дефолт для откладывания работы.