더북(TheBook)

이제 두 번째 타이머의 콜백 함수가 호출 스택으로 이동해 실행됩니다. 이번에는 aaa() 함수가 먼저 호출되어 내부의 setTimeout() 타이머가 백그라운드에 등록됩니다. console.log('c')가 수행된 뒤 aaa()는 종료됩니다. 마지막으로 console.log('b')가 수행된 뒤 두 번째 타이머도 종료됩니다.

남은 것은 백그라운드에 있는 aaa()의 0초 타이머 2개입니다. 역시 순서대로 태스크 큐로 이동하고, 이벤트 루프에 의해 하나씩 호출 스택으로 옮겨진 후 실행됩니다. 여기서 d, d가 출력되어 최종적으로 콘솔에는 a, c, c, b, d, d가 출력됩니다.

본문으로

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.