22.02.02 16:07 작성
·
542
0
안녕하세요 강사님
질 높은 수업으로 늘 잘 듣고 있습니다.
하지만 수업 도중 clearInterval에 대해 의문점이 들어 질문을 남깁니다.
제가 이해한 바로는,
button을 클릭했을 시, interval이라는 함수가 실행되며
interaval() 함수에는 clearInterval이라는 setInterval을 멈출 수 있는 메서드가 존재합니다.
그렇다면 button 클릭 -> interval() 함수 실행 -> clearInterval 메서드 실행 -> setInterval 실행 의 순서로 이해했는데, 여기서 if문이나 토글로 코드를 작성하지 않았는데 버튼을 다시 클릭하면 어떻게 다시 setInterval이 멈춰지는지 로직 구조가 이해가 안됩니다.
답변 1
0
2022. 02. 02. 23:17
안녕하세요.
clearInterval(timer)는 일단 실행중인 timer를 없애는 역할을 하는 겁니다.
그리고 바로 timer = setInterval... 로 timer를 재실행 시켜주는 거죠.
그래서 버튼을 누르면 '정지'라기 보다는 timer 없애고 timer 다시 실행. 입니다.
timer가 하나만 존재하도록 하는겁니다.
.
button 클릭 -> interval() 함수 실행 -> clearInterval 메서드 실행(timer 없애) -> setInterval 실행 (timer 처음부터 다시 실행)
.
clearInterval(timer) 제거하고 테스트 해보세요.
버튼 누를때마다 timer가 계속 중첩이 될 겁니다.