LeetCode - 2715. Timeout Cancellation

henu·2023년 9월 1일
0

LeetCode

목록 보기
38/186
post-thumbnail

Solution

var cancellable = function(fn, args, t) {
    const ID = setTimeout(fn, t, ...args)

    return function cancelFn() {
        clearTimeout(ID);
    }
};

Explanation

일단 문제의 요구사항을 살펴보면 아래와 같다.

  • 함수 fn, 전달인자 배열 args, 타임아웃시간 t가 주어질때, 취소함수 cancelfn를 리턴하라
  • 함수 fnt밀리초 후 실행되어야한다.

간추려보면 함수 fnt밀리초 후 실행하라는 것이다. 따라서 setTimeout() 메소드를 사용해서 해결하기로했다.
setTimeout() 메소드는
1. delay 후 실행될 함수
2. delay 시간
3. delay 후 실행될 함수에 전달될 인자
이렇게 3종류의 파라미터를 가진다. 따라서 fn, t, args를 순서대로 전달인자로 전달하면된다.
이 때 반환되는 값은 타이머를 식별하는 고유한 숫자 값이다. 이 값을 이용해서 타임아웃이 되기전에 취소할 수 있다.
clearTimeout() 메소드에 이 값을 전달해서 취소할 수 있다. 따라서, 리턴되는 cancelfn안에 취소 코드를 작성하면 된다.

0개의 댓글