feat: leading support for debounce (#10388)

This commit is contained in:
farfromrefuge
2023-09-28 02:06:36 +00:00
committed by GitHub
parent 6d44c2d6e0
commit b6a5250511
2 changed files with 6 additions and 2 deletions

View File

@@ -173,12 +173,16 @@ export function mainThreadify(func: Function): (...args: any[]) => void {
};
}
export function debounce(fn: any, delay = 300) {
export function debounce(fn: any, delay = 300, { leading }: { leading?: boolean } = {}) {
let timer: NodeJS.Timeout;
return (...args: Array<any>) => {
if (timer === undefined && leading) {
fn.apply(this, args);
}
clearTimeout(timer);
timer = setTimeout(() => {
fn.apply(this, args);
timer = undefined;
}, delay);
};
}