process.nextTick과 queueMicrotask

00_8_3·2022년 1월 13일
0

간단 Node

목록 보기
26/27

process.nextTick

node의 메서드

동기적 모든 태스크가 완료 된 후 다음의 이벤트큐(마이크로태스크)로 넣는다.

queueMicrotask

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

0개의 댓글