본문으로 건너뛰기

debounce()

function debounce<T>(config): DebouncedFunc<T>

debounce 효과가 적용된 function 을 생성합니다. 생성된 function 은 지정된 지연 시간(wait) 동안 추가 호출이 없을 때까지 파리미터로 전달 받은 함수(func)의 실행을 지연 시킵니다.

invoke_edge 로 함수의 호출 시점을 지정 할 수 있습니다. "trailing" 일 경우, 가장 마지막 호출 시점으로부터 지연 시간이 모두 흐른 뒤에 함수가 호출 됩니다. "leading" 일 경우 함수를 즉시 호출하고, 지연 시간동안 추가적인 호출을 차단합니다.

Type Parameters

Type Parameter
T extends AnyFunc

Parameters

ParameterTypeDescription
configConfig<T>debounce 설정 객체

Returns

DebouncedFunc<T>

debounce 처리된 함수

Examples

  // invoke_edge 가 "trailing" 일 경우...(기본값)
const debounced_func_trailing = debounce({
func: () => {
console.log("invoked")
},
wait: 300,
})

// 마지막 호출로 부터 300ms 후... "invoked" 1 회 출력
debounced_func_trailing()
debounced_func_trailing()
  // invoke_edge 가 "leading" 일 경우...
const debounced_func_leading = debounce({
func: () => {
console.log("invoked")
},
wait: 300,
invoke_edge: "leading"
})

// 즉시 "invoked" 1회 출력 후 마지막 호출로 부터 300ms 가 지나기 전까지 함수 호출 차단
debounced_func_leading()
debounced_func_leading()