728x90
반응형
1️⃣ 결론부터
clearInterval(tt)
👉 이전에 setInterval()로 만든 타이머를 멈추는 함수야.
👉 tt는 setInterval이 반환한 ID(핸들)
2️⃣ setInterval은 뭘 리턴하나?
const tt = setInterval(() => {
console.log("1초마다 실행");
}, 1000);
📌 setInterval()은 그냥 주기적으로 실행만 하는 게 아니라
👉 타이머 ID를 하나 돌려줌
→ 그걸 변수에 저장(tt)해야 나중에 멈출 수(clearInterval(tt) 있어.
3️⃣ clearInterval은 그 ID를 받는다
clearInterval(tt);
“ID가 tt인 interval 타이머를 중지해라”
4️⃣ 그럼 tt는 어디서 나타난 거임?
❌ 갑자기 생긴 게 아님
✅ 어딘가에서 반드시 이렇게 선언돼 있어야 함
let tt;
function startTimer() {
tt = setInterval(() => {
console.log("tick");
}, 1000);
}
또는
const tt = setInterval(...);
만약 코드 어디에도 setInterval이 없으면 ❌
👉 clearInterval(tt)는 아무 효과 없음 (또는 에러)
5️⃣ async랑은 관계 없음
async function timer1() { ... }
- async는 Promise / await용
- setInterval, clearInterval은 브라우저 타이머 API
👉 서로 완전히 다른 개념
728x90
6️⃣ 흔한 실수
❌ 이런 경우
function start() {
let tt = setInterval(...);
}
function stop() {
clearInterval(tt); // ❌ 접근 불가
}
👉 tt가 지역변수라 stop에서 못 씀
✅ 올바른 패턴
let tt;
function start() {
tt = setInterval(...);
}
function stop() {
clearInterval(tt);
}
7️⃣ setTimeout이랑 비교
| 함수 | 반복 | 중지 |
| setInterval | ⭕ | clearInterval |
| setTimeout | ❌(1회) | clearTimeout |
8️⃣ 한 문장 요약
- setInterval() → 타이머 시작 + ID 반환
- 그 ID를 변수(tt)에 저장
- clearInterval(tt) → 그 타이머 중지
- async랑은 무관
지금 코드 흐름 보면
👉 타이머 제어 + async 섞인 레거시 코드 분석 중 같아 😄
원하면:
- interval 중첩 방지 패턴
- async 안에서 타이머 쓰는 주의점
- 실제 실행 순서(이벤트 루프)
이것도 설명해줄게
728x90
반응형
'프로그래밍' 카테고리의 다른 글
| com.twitter.HTTPRequestActionResponseError 오류 131 (0) | 2026.01.14 |
|---|---|
| II (OR 연산자) vs ?? (Null 병합 연산자) (0) | 2026.01.09 |
| const { serverTime } = window / window.__SERVERTIME__ = 1730000000000 (0) | 2026.01.09 |
| Date.now() / 1730000000000 / 1970-01-01 00:00:00 (UTC)의 관계 (0) | 2026.01.08 |
| querySelectorAll() 에서 query란? (0) | 2026.01.06 |
| async / Promise / await (0) | 2026.01.06 |
| 서버 구현 :: node.js + Express (0) | 2025.11.04 |
| AI 콘텐츠 블로그 탐지 (0) | 2025.10.31 |