21. process.nextTick

process.nextTick(callback)

event loop가 다른 callback 함수들보다 nextTick의 callback 함수를 우선적으로 처리한다.

너무 남용하면 다른 callback 함수들 실행이 늦어진다.

비슷한 경우로 promise가 있다. (nextTick처럼 우선순위가 높다.)

아래 예제를 실행해보면 setImmediate, setTimeout보다 promisenextTick이 먼저 실행된다.

setImmediate(() => {
    console.log('setImmediate');
})

process.nextTick(() => {
    console.log('nextTick')
})

setTimeout(() => {
    console.log('setTimeout')
}, 0)

Promise.resolve().then(() => console.log('promise'))

// nextTick
// promise
// setTimeout
// setImmediate

// ---------------------------------------------------------------------------------
// setTimeout 0초랑 setImmediate는 누가먼저 실행될지 모른다.