우리가 실행한 명령어들이 내부에서 실행되는 과정을 간략하게 나타내면 아래와 같다 호출 스택에서 명령어들이 실행되고 그 중 비동기 코드들은 이벤트루프로 이동한다 이벤트루프에서 완료된 비동기 코드들 중 먼저 완료된 코드 부터 태스크 큐로 이동해서 호출 스택이 빌 때 까지 기다린다 호출 스택이 비었으면 태스크 큐에 들어온 순서대로 선입선출(FIFO)하여 호출 스택으로 들어간다 하지만 추가적으로 여기 태스크 큐에서 Promise 객체의 then, catch, nextTick에 대해 우선순위를 준다 즉, 테스크 큐에 setTimeout과 then이 있을 때 setTimeout이 먼저 완료되어 태스크 큐에 먼저 들어왔다 하더라도 then이 새치기해서 먼저 호출스택으로 이동한다 ex) 아래와 같은 코드를 실행했을 때..