JavaScript는 동기 코드를 호출 스택에서 실행합니다. Promise 후속 작업은 마이크로태스크 큐에, 타이머 콜백은 태스크 큐에 들어갑니다. 스택이 비면 마이크로태스크를 먼저 모두 처리합니다.
데모는 동기 코드, Promise 콜백, 타이머 콜백을 순서대로 이동시킵니다. 타이머가 0ms로 예약돼도 현재 스택과 마이크로태스크보다 앞서 실행되지 않습니다.
언제 쓰나
Promise와 타이머의 출력 순서를 예측하거나 UI가 긴 동기 작업 때문에 멈추는 이유를 찾을 때 사용합니다.