아래와 같이 setTimeout 함수 내에 setInterval을 실행했더니, 나중에 clearInterval함수가 작동하지 않는 문제가 생겼다.
setTimeout(() => {
const move_interval = setInterval(move, 50);
}, 2500);
이유는 setInterval의 아이디를 할당한 변수가 지역변수이기 때문에 scope 밖에서 읽을 수 없었던 것.
이를 해결하기 위해, 함수 밖에서 move_interval을 전역변수로 선언했더니, 해결됐다.
const move_interval = null;
setTimeout(() => {
move_interval = setInterval(move, 50);
}, 2500);
clearInterval(move_interval);
'Front-end > Javascript' 카테고리의 다른 글
[에러해결] JS - module 내의 함수 연동 에러(Uncaught ReferenceError) (0) | 2022.05.10 |
---|---|
[JS] this와 bind() 메서드, 그리고 정적 / 동적 문맥 (0) | 2022.05.05 |
[에러해결] JS - focus is not a function 오류 (0) | 2022.05.02 |