mirror of
https://github.com/revoltchat/revite.git
synced 2024-12-29 00:34:47 -05:00
15 lines
467 B
TypeScript
15 lines
467 B
TypeScript
export function debounce(cb: Function, duration: number) {
|
|
// Store the timer variable.
|
|
let timer: NodeJS.Timeout;
|
|
// This function is given to React.
|
|
return (...args: any[]) => {
|
|
// Get rid of the old timer.
|
|
clearTimeout(timer);
|
|
// Set a new timer.
|
|
timer = setTimeout(() => {
|
|
// Instead calling the new function.
|
|
// (with the newer data)
|
|
cb(...args);
|
|
}, duration);
|
|
};
|
|
}
|