호출 스케쥴링은 함수를 명시적으로 호출하면 함수가 즉시 실행 되는데, 명시적으로 호출하지 않고 일정 시간이 경과된 이후에 호출되도록 함수 호출을 예약하려면 타이머 함수를 사용한다.
JavaScript에서는 타이머를 생성할 수 있는 타이머 함수 setTimeout
과 setInterval
그리고 타이머를 제거할 clearTimeout
, clearInterval
을 제공한다.
JavaScript는 싱글 스레드로 동작하기 때문에 setTimeout
과 setInterval
은 비동기 처리 방식으로 동작한다는 것을 알아두자.
// setTimeout
function showName(name) {
console.log(name);
}
// setTimeout(함수, 시간, 인수);
setTimeout(showName, 2000, 'Sunki');
이처럼 생성된 타이머를 식별할 수 있는 고유한 타이머 id를 반환한다.
// setInterval
let num = 0;
function showTime() {
console.log(`안녕하세요 접속한지 ${num++}초가 지났습니다.`)
if (num > 5) {
clearInterval(tId)
}
}
const tId = setInterval(showTime, 1000)
interval은 반복하는 동작 타이머를 생성하여, 타이머가 만료될 때 마다 첫 번째 인수로 전달 받은 콜백 함수가 반복 호출된다.