- 기본적으로 무언가를 일정 간격을 두고 실행하도록 만들어주는 스케줄링 메서드이다
setInterval
- 지정된 주기로 특정 코드를 계속 실행한다
- 시간 지연을 보장하지 않는다
- 취소함수 clearInterval
setTimeout
- 지정된 초가 지난 후 특정 코드를 1회 실행 후 멈춘다
- 시간 지연을 보장한다
- setInterval과 같이 계속 실행하고 싶을때에는 setTimeout안에 setTimeout을 중첩 시킨다
setTimeout(() => {
const timeoutTest = () => {
console.log("ddd");
setTimeout(timeoutTest, 1000);
};
}, 1000);
- 혹시나 서버가 과부하 상태라면 요청간격을 늘릴 수 있다
let delay = 5000;
let timer = setTimeout(function request() {
...요청 보내기...
if(서버 과부하로 인한 요청 실패) {
delay *= 2;
}
timerId = setTimeout(request, delay);
}, delay);
- setTimeout의 고유한 타이머 id값을 사용해서 타이머를 취소할 수 있다.
Debounce
- 짧은 시간 간격으로 이벤트가 연속해서 발생하는 경우 이벤트 핸들러를 호출하지 않다가 일정 시간 후 이벤트를 단 한번만 호출한다