마이크로태스크 큐

마이크로태스크 큐에 대해 설명해주세요 ⭐

태스크 큐와는 별도의 큐로 promise의 후속 처리 메소드의 콜백 함수가 일시 저장된다. 그 외의 비동기 함수의 콜백 함수 or 이벤트 핸들러는 태스크 큐에 일시 저장된다.

태스크 큐와 비교

setTimeout(() => console.log(1), 0);

Promise.resolve()
  .then(() => console.log(2))
  .then(() => console.log(3));

실행 결과는 2, 3, 1이다. 왜 그럴지 알아보자.

공통점

콜백 함수나 이벤트 핸들러를 일시 저장한다는 점

차이점

태스크 큐보다 우선순위가 높다. 이벤트 루프는 콜 스택이 비면 먼저 마이크로태스크 큐에서 대기하고 있는 함수를 가져와 실행한다. 이후 마이크로태스크 큐가 비면 태스크 큐에서 대기하고 있는 함수를 가져와 실행한다.

참고자료

모던 자바스크립트 Deep Dive 45장 프로미스

Last updated