2021-06-04

手写一个节流函数,throttle

Throttle是web应用中经常用到的技巧,通常情况下你应该使用现有的实现,比如lodash.throttle() 你能够自己实现一个基本的throttle()吗? 再次说明一下,throttle(...展开

/**
 * @param {Function} func
 * @param {number} wait
 */
function throttle(func, wait) {
  let waiting = false;
  let lastArgs;
  return function () {
     if (!waiting) {
       waiting = true;
       func.apply(this, arguments);
       setTimeout(() => {
         waiting = false;
         if (lastArgs) func.apply(this, lastArgs);
       }, wait);
     } else {
       lastArgs = [...arguments];
     }
  }
}
WRITTEN BY

lidong

鄂ICP备20003892号 Copyright © 2017-2023 leedong.cn

ABOUT ME

Hello,这里是「我的心情永不立冬」
一个想到什么就做什么的个人站点,所有内容纯主观、有偏见