반응형
setTimeout이 여러개 있는 경우 한 변수에 담아 forEach등을 이용하여 지우는 방법이 있다. 그러나 가끔 이 방법이 간헐적으로 되지 않아서 이리저리 찾다가 해결방법을 기록함.
1. 객체로 저장
var timer = {};
timer.t1 = setTimeout(() => {});
for (var key in timer) {
if (timer.hasOwnProperty(key)) {
clearTimeout(timer[key]);
}
};
사실 정확하게 이유는 모르겠으나 챗지피티님이 말씀하시길 타이머를 push할때 타이머ID가 덮어씌워져서 일부 타이머가 제대로 저장이 안되어서 그럴 수 있다고 하는게 제일 맞는거 같았음. 그래서 위 방법처럼 객체로 저장해서 for...in으로 지웠더니 잘댐
'Javascript' 카테고리의 다른 글
[ts] TouchEvent 타입 문제 (0) | 2024.10.16 |
---|---|
[javascript] addEventListener 이벤트 중복 막기 (0) | 2024.06.12 |
[iOS] 아이폰,아이패드에서 간헐적으로 audio 안나올 때 (0) | 2024.05.24 |
input에서 enter쳤는데 두번 실행될 때 (0) | 2024.02.22 |
[vscode] 간편한 snippet 등록하기 (0) | 2024.02.01 |