UNPKG

mframejs

Version:
31 lines (23 loc) 884 B
import { behavior } from '../decorator/exported'; @behavior('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); } } }