JavaScript

[JS] setTimeout()과 setInterval() 함수

sun0sun 2023. 6. 28. 11:52

자바스크립트의 내장함수중에 비동기함수인 setTimeout()과 setInterval()에 대해서 알아보고자 한다.

1. setTimeout()

특정 코드를 바로 실행하지 않고, 일정시간을 기다린 후 실행하는 함수이다.

setTimeout() 함수는 2개의 인자를 받는다. 첫번째 인자는 실행할 코드를 담는 함수를 받고, 두번째 인자로 지연되는 시간을 밀리초(ms) 단위로 받는다.

setTimeout(()=>console.log("2초 뒤에 실행"), 2000);

 

세번째 인자의 자리 부터는 가변 인자를 받는다.

첫번째 인자로 넘어온 함수가 인자를 받는 경우, 이 함수에 넘길인자를 명시해주기 위해서 사용한다.

예시) 두개의 인자를 더한 값을 출력하는 add함수에 필요한 2개의 값을 세번째와 네번째 인자 자리에 작성한다.

function add(x, y){
	console.log(x + y);
}

setTimeout(add, 2000, 3, 3);

2초 기다린 뒤 출력-> 6

 

clearTimeout() 함수를 호출하면 기다렸다가 실행될 코드를 취소할 수 있다.

 

2. setInterval()

setInterval() 함수는 어떤 코드를 일정한 시간 간격을 두고 반복해서 실행하고 싶을 때 사용한다.

해당 함수를 사용하는 예시 :

  • 웹 페이지의 특정 부부을 주기적으로 업데이트를 해주어야 하는 경우
  • 어떤 API로 부터 변경된 데이터를 주기적으로 받아와야 하는 경우

setTimeout()과 마찬가지로 setInterval() 함수의 첫번째 인자로 실행할 코드를 담고있는 함수를 받고, 두번째 인자로는 반복 주기를 밀리초(ms) 단위로 받는다.

setInterval(()=> console.log(new Date()), 2000);

2초 단위로 출력되는 코드들 -> 
Wed Jun 28 2023 11:57:06 GMT+0900 (한국 표준시)
Wed Jun 28 2023 11:57:08 GMT+0900 (한국 표준시)
Wed Jun 28 2023 11:57:10 GMT+0900 (한국 표준시)
...

 

clearInterval() 함수를 호출하면 코드가 주기적으로 실행되는 것을 중단시킬 수 있다.

 

참고 사이트 : https://www.daleseo.com/js-timer/