|
- export function Debounce (config: { timeoutMS: number }) {
- let timeoutRef: NodeJS.Timeout
-
- return function (_target, _key, descriptor: PropertyDescriptor) {
- const original = descriptor.value
-
- descriptor.value = function (...args: any[]) {
- clearTimeout(timeoutRef)
-
- timeoutRef = setTimeout(() => {
- original.apply(this, args)
- }, config.timeoutMS)
- }
- }
- }
|