node의 메서드
동기적 모든 태스크가 완료 된 후 다음의 이벤트큐(마이크로태스크)로 넣는다.
v8엔진의 메서드
process.nextTick
과 비슷하지만
nextTick
은
nextTick(callback, "첫번째인자", "두번째인자")
와 같이
callback
함수의 파라미터를 nextTick의 인자로 바로 넣을 수 있지만
queueMicrotask
같은 경우 queueMicrotask(callback.bind(undefined, "첫번째 인자", "두번째 인자"));
와 같이 콜백
함수를 bind하거나 클로져
를 사용해야한다.
import { nextTick } from 'process';
console.log("start");
Promise.resolve().then(() => console.log(2));
queueMicrotask(() => console.log(3));
Promise.resolve().then(() => console.log(4));
nextTick(() => console.log(1));
console.log("end");
// Output:
// start
// end
// 1
// 2
// 3
// 4
nodejs 문서에 따르면 확실하지 않는 경우 queueMicrotask
사용을 권장한다.
node docs가 생각보다 설명이 잘 되어 있으니 읽어보면 좋을 것 같다.
https://nodejs.org/docs/latest-v16.x/api/process.html#when-to-use-queuemicrotask-vs-processnexttick
https://nodejs.org/docs/latest-v16.x/api/globals.html#queuemicrotaskcallback
https://developer.mozilla.org/ko/docs/Web/API/HTML_DOM_API/Microtask_guide