앞서 이벤트 루프에 대한 게시물에서
Web API를 통해 수행되는 비동기 작업의 경우 콜백 큐에 저장되었다가
이벤트 루프에 의해 콜 스택에 들어간 후 수행된다고 정리했다
비동기 작업의 경우 Web API를 통해 수행되는 작업도 있지만, 프로미스 메서드의 콜백 함수에 의해 수행되는 작업도 있다
마이크로태스크 큐(Microtask Queue)
- 프로미스의 then, catch, finally 메서드의 콜백 함수와 같은 더 빠른 비동기 작업을 위한 큐
- 이벤트 루프는 콜 스택이 비어 있을 때, 태스크 큐의 콜백보다 먼저 마이크로태스크 큐에 있는 콜백을 실행한다
태스크 큐(Task Queue)
- 일반적인 비동기 작업(예: setTimeout, setInterval 등)으로부터 생성된 콜백 함수들이 저장되는 큐
- 콜백 큐와 같은 의미로 사용되지만, 구체적으로는 태스크 큐가 더 광범위한 개념이다
예제
console.log("1");
setTimeout(() => {
console.log("2");
}, 0);
Promise.resolve().then(() => {
console.log("3");
}).then(() => {
console.log("4");
});
console.log("5");
출력 결과
1
5
3
4
2'Javascript' 카테고리의 다른 글
| 실행 컨텍스트 (0) | 2024.10.29 |
|---|---|
| 이벤트 전파 (0) | 2024.10.27 |
| Javascript의 동작 원리 (이벤트 루프) (0) | 2024.10.26 |
| 비동기 처리 (1) | 2024.10.25 |
| JavaScript 특성 (0) | 2024.10.25 |