주요 포인트는, setInterval
이전 한 번 직접 호출하는 것이다.
문제의 예를 보면 시작과 동시에 한번 호출하고 그 이후 t
초 이후마다 호출하라고 되어있기 때문임.
삽질했다 ㅜ
type JSONValue = null | boolean | number | string | JSONValue[] | { [key: string]: JSONValue };
type Fn = (...args: JSONValue[]) => void
function cancellable(fn: Fn, args: JSONValue[], t: number): Function {
fn(...args)
const targetInterval = setInterval(() => fn(...args), t)
return function cancelFn() {
clearInterval(targetInterval)
}
};