해결된 질문
작성
·
313
1
var i = 0;
var fnc = setInterval(function () {
if (i == 3) {
clearInterval(fnc);
}
console.log("3초마다 프로그램 실행 - " + i);
i++;
}, 3000);
i가 3일 때 setInterval를 중단하기 위해 해당 코드를 작성했습니다.
i가 3일 경우에는 clearInterval에 의해 setInterval이 중단됐기 때문에
아래 console.log("3초마다 프로그램 실행 - " + i)도 실행되지 않아
콘솔창을 실행했을 때 "3초마다 프로그램 실행 - 2"까지만 나오고 멈출거라고 생각했는데,
"3초마다 프로그램 실행 - 3"이 나와 왜 그런지 질문 드립니다.
답변 1
1
이미 setInterval 함수가 실행되었기 때문에 당연히 콘솔에 찍히는게 맞습니다.
콘솔에 3을 찍지 않으려면, if문에서 clearInterval 한 후 바로 return; 코드를 추가하면 됩니다
답변 주셔서 감사합니다!