mframejs
Version:
simple framework
31 lines (23 loc) • 884 B
text/typescript
import { behavior } from '../decorator/exported';
('throttle')
export class ThrottleBehavior {
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) {
this.timerBehavior = setTimeout(() => {
binding.eventHandlerBindedBackup();
this.timerBehavior = null;
}, time);
}
}.bind(binding);
}
}
}