태스크 큐

비동기 작업이 완료된 후 콜백이 대기하는 곳입니다. Callback Queue라고도 합니다.

동작

console.log("1");

setTimeout(() => {
    console.log("2");
}, 1000);

console.log("3");
1. console.log("1") → Call Stack에서 실행

2. setTimeout → Web API에게 타이머 맡김

3. console.log("3") → Call Stack에서 실행

4. (1초 후) 타이머 완료 → 콜백이 Task Queue에 들어감

   Task Queue: │ () => console.log("2") │

5. Call Stack이 비었음 → Event Loop가 Task Queue에서 꺼내 실행

Call Stack vs Task Queue

Call StackTask Queue
역할지금 실행 중실행 대기 중
구조LIFO (스택)FIFO (큐)
처리바로 실행Call Stack 비면 실행
Call Stack: 마지막에 들어온 게 먼저 나감
Task Queue: 먼저 들어온 게 먼저 나감

큐에 들어가는 것들

setTimeout(() => {}, 0);      // Task Queue
setInterval(() => {}, 1000);  // Task Queue
addEventListener("click", () => {});  // Task Queue

비동기 작업의 콜백들이 여기서 대기합니다.

CSLOG에서 보기