20 lines
307 B
TypeScript
20 lines
307 B
TypeScript
export default <T extends unknown[]>(
|
|
callback: (...args: T) => void,
|
|
delay: number
|
|
) => {
|
|
let isWaiting = false;
|
|
|
|
return (...args: T) => {
|
|
if (isWaiting) {
|
|
return;
|
|
}
|
|
|
|
callback(...args);
|
|
isWaiting = true;
|
|
|
|
setTimeout(() => {
|
|
isWaiting = false;
|
|
}, delay);
|
|
};
|
|
};
|