더북(TheBook)

기존 코드에서 문제가 발생한 이유는 함수가 호출 스택에 끊임없이 쌓이기 때문입니다. 그런데 recurse() 함수 안에 setTimeout()을 사용하면 백그라운드로 타이머와 함께 콜백 함수를 보낼 수 있습니다. 백그라운드로 콜백 함수가 보내지면 setTimeout(), recurse(), (anonymous) 함수가 순서대로 종료됩니다. 타이머가 0초로 설정되어 있으므로 백그라운드에 들어가는 순간 콜백 함수는 바로 태스크 큐로 보내집니다.

그림3-15 recurse( ) 함수의 내부 타이머가 백그라운드로 이동

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