개발후라이
개발후라이
개발후라이
  • 분류 전체보기 (285)
    • Web Front End (74)
      • Javascript & Typescript (26)
      • React (11)
      • Vue (4)
      • Nodejs (1)
      • HTML (6)
      • CSS (7)
      • HTTP (6)
      • 책 - Review (8)
    • TIL (0)
    • Problem Solved (135)
      • 알고리즘 (4)
      • BOJ (67)
      • Programmers (8)
      • HackerRank (33)
      • LeetCode (23)
    • 회고 (4)
      • 오늘의 회고 (16)
      • 주간 회고 (15)
      • 월간 회고 (7)
      • WakaTime (9)
    • Git (3)
    • 기타 (15)
      • 취업 (5)
      • 자격증 (1)

블로그 메뉴

  • GitHub
  • LinkedIn
  • 홈

인기 글

태그

  • 노마드북클럽
  • JavaScript
  • 릿코드
  • 개발자
  • 오늘의회고
  • 노개북
  • 프론트엔드
  • 회고
  • 자바스크립트
  • TypeScript

최근 댓글

최근 글

전체 방문자
오늘
어제

티스토리

hELLO · Designed By 정상우.
개발후라이

개발후라이

Web Front End/Javascript & Typescript

clearTimeout이 사용되는 경우(Debouncing)

2020. 3. 6. 12:13
반응형

clearTimeout이란?

setTimeout을 취소(초기화)시키는 메소드이다.

그럼 setTimeout이란?

setTimeout(callbackFn, TIME);

TIMEms 이후에 callbackFn이 실행되는 메소드이다.

TIME을 1초로 설정한다면, 1초 뒤에 콜백함수가 실행되는 비동기 메소드이다.

setTimeout에 clearTimeout이 꼭 필요할까?

결론부터 말하자면, 특별한 상황이 아니면 꼭 필요하지는 않다.

특정 시간만큼 반복해서 콜백함수를 실행하는 setInterval는 무한적으로 반복되기 때문에 중지하는 시점에서 clearTimeout을 해 줘야 한다.

하지만 한 번만 실행되는 setTimeout을 매번 clearTimeout 을 해 줄 필요는 없다.

그러면 어디에 쓰이는 거지?

setTimeout이 취소되야 하는 상황에 쓰여야 한다.

setTimeout이 취소되야 하는 상황의 예에는 addEventListener 안에 쓰였을 때가 있다.

만약 검색자동완성을 구현하기 위해 input이 들어오고 300ms 뒤에 setTimeout을 사용해 [Debouncing]을 한다.

Debouncing에 관한 내용은 제로초님 블로그에서 자세히 볼 수 있다.

참고

https://stackoverflow.com/questions/7391567/when-using-settimeout-do-you-have-to-cleartimeout

https://www.zerocho.com/category/JavaScript/post/59a8e9cb15ac0000182794fa

반응형
저작자표시 (새창열림)
    'Web Front End/Javascript & Typescript' 카테고리의 다른 글
    • Typescript generic
    • [Javascript] 코딩할 때 먼저 고민하면 좋을 10가지
    • [러닝자바스크립트] 9장. 객체와 객체지향 프로그래밍
    • [러닝자바스크립트] 5장. 표현식과 연산자
    개발후라이
    개발후라이
    어제보다 오늘 발전하기 위한 공간 https://github.com/choisohyun

    티스토리툴바