Appearance
useThrottleFn
Throttle execution of a function
Demo
Usage
tsx
import { useThrottleFn } from '@reause/shared'
import { useEffect } from 'react'
const throttledFn = useThrottleFn(() => {
// do something, it will be called at most 1 time per second
}, 1000)
useEffect(() => {
window.addEventListener('resize', throttledFn)
return () => window.removeEventListener('resize', throttledFn)
}, [throttledFn])
// note: returned fn is referentially stable so effects don't re-subscribe;
// ms is a plain number, re-read on
// every callRecommended Reading
Type Declarations
ts
export type PromisifyFn<T extends FunctionArgs> = (...args: Parameters<T>) => Promise<Awaited<ReturnType<T>>>
export function useThrottleFn<T extends FunctionArgs>(fn: T, ms?: number, trailing?, leading?, rejectOnCancel?): PromisifyFn<T>