(fn: (value: T) => void, delay: number)
| 159 | } |
| 160 | |
| 161 | function debounce<T>(fn: (value: T) => void, delay: number) { |
| 162 | let timeout: number | undefined; |
| 163 | return (value: T) => { |
| 164 | if (timeout !== undefined) { |
| 165 | clearTimeout(timeout); |
| 166 | } |
| 167 | timeout = setTimeout(() => { |
| 168 | timeout = undefined; |
| 169 | fn(value); |
| 170 | }, delay); |
| 171 | }; |
| 172 | } |