Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | 29x 29x |
import { behavior } from '../decorator/exported';
@behavior('debounce')
export class DebounceBehavior {
public name: string;
constructor(binding: any, args: any) {
const time = args[0] || 100;
if (binding.eventHandlerBinded) {
binding.eventHandlerBindedBackup = binding.eventHandlerBinded;
binding.detachedBackup = binding.detached;
binding.detached = function () {
binding.detachedBackup();
};
binding.eventHandlerBinded = function () {
if (this.timerBehavior) {
clearTimeout(this.timerBehavior);
this.timerBehavior = null;
}
this.timerBehavior = setTimeout(() => {
binding.eventHandlerBindedBackup();
}, time);
}.bind(binding);
}
}
}
|