blair's 개발 portfolio

[모던 자바스크립트 Deep Dive] 41. 타이머

41. 타이머

 

41.1 호출 스케줄링

 

  • 호출 스케줄링 : 함수를 명시적으로 호출하지 않고 일정 시간이 경과된 이후에 호출되도록 함수 호출을 예약하려면 타이머 함수를 사용한다.

 

41.2 타이머 함수

1. setTImeout/clearTimeout

  • setTimeout 함수의 콜백 함수는 두번째 인수로 전달 받은 시간 이후 단 한번 실행되도록 호출 스케줄링된다.
  • claerTimeout 함수는 호출 스케일링을 취소한다.
const timeoutId = setTimeout(func|code[,delay,param1,param2,  ...]);

//1초(1000ms) 후 타이머가 만료되면 콜백함수가 호출된다.
setTimeout(() => console.log('Hi'),1000);
//1초(1000ms) 후 타이머가 만료되면 콜백함수가 호출된다.
//이때 콜백함수에 'Lee' 가 인수로 전달된다
setTimeout(() => console.log(`Hi ${name}`),1000,'Lee');
//두번째 인수(delay)를 생략하면 기본값 0이 지정된다.
setTimeout(() => console.log('Hello'))

 

2. setInterval/clearInterval

  • setInterval 함수의 콜백 함수는 두번째 인수로 전달받은 시간이 경과할 때마다 반복 실행되도록 호출 스케줄링된다.
  • clearInterval 함수는 호출 스케줄링을 취소한다.

 

41.3 디바운스와 스로틀

  • 짧은 시간 간격으로 연속해서 발생하는 이벤트를 그룹화해서 과도한 이벤트 핸들러 호출을 방지하는 프로그래밍 기법

1. 디바운스

  • 짧은 시간 간격을로 발생하는 이벤트를 그룹화해서 마지막에 한번만 이벤트 핸들러가 호출되도록 한다.
  • debounce 함수나 Lodash의 debounce 함수를 사용하는 것을 권장

2. 스로틀

  • 짧은 시간 간격으로 연속해서 발생하는 이벤트를 그룹화해서 일정 시간 단위로 이벤트 핸들러가 호출되도록 호출 주기를 만든다.

 

 

블로그의 정보

개발 블로그👩‍💻

Blairj

활동하기