순서상 setTimeout()의 콜백 함수가 태스크 큐에 들어간 뒤, then()의 콜백 함수가 태스크 큐에 들어갑니다. 하지만 then()의 콜백 함수가 더 먼저 실행됩니다. 이는 앞에서 말했듯이 호출 스택이 비어 있을 때 프로미스 콜백 함수가 프로미스가 아닌 콜백 함수보다 더 먼저 호출 스택으로 올라가기 때문입니다.
그림 3-18 프로미스 사용 시 호출 스택과 이벤트 루프
순서상 setTimeout()의 콜백 함수가 태스크 큐에 들어간 뒤, then()의 콜백 함수가 태스크 큐에 들어갑니다. 하지만 then()의 콜백 함수가 더 먼저 실행됩니다. 이는 앞에서 말했듯이 호출 스택이 비어 있을 때 프로미스 콜백 함수가 프로미스가 아닌 콜백 함수보다 더 먼저 호출 스택으로 올라가기 때문입니다.
그림 3-18 프로미스 사용 시 호출 스택과 이벤트 루프