setInterval 자바 질문
본문
function test() {
var count = 5;
setInterval(function() {
count--;
if (count == 0) {
return true;
}
return false;
}, 1000);
console.log('1');
}
라고 소스를 짰는데 test(); 호출하니까 console.log('1');이 찍혀버리네요..;?
if 문으로 count 0이면 return true돼서 console.log 부분으로 가게 한건데
test(); 함수 호출하자마자 콘솔찍히네요.. 뭐죠?
!-->답변 1
setInterval 이나 이벤트 처리등은 비동기식 처리방식이기때문에 병렬적으로 실행됨니다.
test() 함수 호출시 내부 setInterval 이 끝날때까지 대기하는것이 아닌 병렬 실행시키고 바로 다음
console.log(
'1'
); 코드로 넘어가게됨니다.
원하는 흐름을 만들기위해선
setInterval 안에 조건문으로 console.log(
'1'
); 를 해주시면 됨니다.
답변을 작성하시기 전에 로그인 해주세요.