강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

신준석님의 프로필 이미지
신준석

작성한 질문수

인터랙티브 웹 개발 제대로 시작하기

setTimeout

값이 크게 달라지는 것은 아니지만 궁금해서요!

작성

·

212

0

제가 그대로 따라했는데도 선생님과 return값이 달라서... 그런데 왜그런지 알 수 있을까요? 저는 리턴값이 2라고 뜨는데 선생님은 1이라고 떠서요. 크게 문제는 될거라고 생각하지 않지만 괜히 찝찝해서... 질문드려요!!

let timeId;
const btn = document.querySelector('.btn')

function sample() {
console.log('sample!')
}
timeId = setTimeout(sample, 3000); // 3초뒤에 문구가 뜨게 된다. timeId에 그 결과 값(return)이 저장된다.

console.log(timeId);

// clearTimeout(timeId); //이건 실행이 안되게 취소시켜버린다.

btn.addEventListener('click', function() {
clearTimeout(timeId);

답변 1

0

1분코딩님의 프로필 이미지
1분코딩
지식공유자

준석님 코드를 복사해서 사용해도 저는 1이 뜨는데..희한하네요^^;
규칙상 '0이 아닌값'을 리턴하게 되어있기때문에,
0을 리턴하는게 아니라면 동작에 영항을 미치는 요소는 아닌데요, 저도 궁금하네요 무슨 상황인지^^;
혹시 저 코드 외에 윗부분에 timeId = setInterval(sample, 3000);를 했다든지 하셨을까요?
setInterval과 setTimeout이 같은 id 공간을 공유해서 값이 누적될 가능성도 있거든요.

신준석님의 프로필 이미지
신준석

작성한 질문수

질문하기