Debounce.ts 509 B

123456789101112131415161718192021
  1. /**
  2. * 防抖
  3. * @param wait 等待时间 单位秒
  4. */
  5. export default function Debounce(wait: number) {
  6. return function (target: any, keyname: string, descriptor: PropertyDescriptor) {
  7. const method: Function = descriptor.value;
  8. let timer: number = null;
  9. descriptor.value = function (...args: any[]) {
  10. if (timer) {
  11. clearInterval(timer);
  12. timer = null;
  13. }
  14. timer = setTimeout(() => {
  15. clearInterval(timer);
  16. timer = null;
  17. method.apply(this, args);
  18. }, wait * 1000);
  19. };
  20. };
  21. }