node 내장 함수 실행 순서
setImmediate(() => {
console.log("immediate 1");
});
process.nextTick(() => {
console.log("nextTick 2");
});
setTimeout(() => {
console.log("timeout 3");
}, 0);
Promise.resolve().then(() => console.log("promise 4"));
;
process.nextTick && Promise
마이크로 태스트(microtask) 부름
마이크로태스크 큐가 별도로 존재함
process.nextTick 콜백 도는 resolve된 Promise 콜백은 다른 이벤트 루프에서 대기하는 태스크 큐 콜백함수 보다도 먼저 실행됩니다.
setImmediate보다 process.nextTick을 더 선호하기도 함.
마이크로태스크를 재귀 호출하게되면 이벤트 루프는 태스크 큐의 다른 콜백함수보다 마이크로태스크를 우선해 처리하므로 다른 콜백함수들이 실행되지 않을 수 있음.