setTimeout이 코드를 멈추지 않고 나중 작업을 예약하는 방식을 배웁니다.
setTimeout은 최소 지연 시간 뒤 콜백을 task queue에 넣으며 정확한 실행 시각을 보장하지 않습니다. 현재 call stack과 앞선 작업이 끝나야 실행됩니다. 반환된 id를 clearTimeout에 전달해 아직 실행되지 않은 작업을 취소할 수 있습니다.
코드를 읽을 때는 const id=setTimeout(callback,delay); clearTimeout(id); 부분부터 찾으세요. 현재 값과 실행 순서를 줄마다 적어 보면 문법을 외우지 않아도 결과를 예측할 수 있습니다.
결과가 나중에 도착해도 화면 전체를 멈추지 않아야 하는 작업에 사용합니다. 로딩, 성공, 빈 결과, 실패와 취소를 서로 다른 상태로 다루세요.
실행하기 전에 예상 결과를 짧게 적은 뒤 취소하지 않는 두 번째 타이머를 추가하고 실행 순서를 예측하세요. 실제 출력이 다르면 콘솔에 처음 나타난 오류와 그 직전 값을 차례로 확인하세요.
0ms 타이머도 현재 함수보다 먼저 실행되지 않습니다. 긴 동기 반복문이 있으면 타이머도 늦어집니다.
직접 바꿔보세요취소하지 않는 두 번째 타이머를 추가하고 실행 순서를 예측하세요.