File size: 369 Bytes
c0a9bce
 
2e1ab99
c0a9bce
 
 
 
 
2e1ab99
c0a9bce
 
2e1ab99
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
export function debounce<T extends (...args: any[]) => any>(func: T, wait: number): (...args: Parameters<T>) => void {
  let timeout: NodeJS.Timeout;

  return function executedFunction(...args: Parameters<T>) {
    const later = () => {
      clearTimeout(timeout);
      func(...args);
    };

    clearTimeout(timeout);
    timeout = setTimeout(later, wait);
  };
}