微信小程序的防抖和节流的实现

2022-04-02  本文已影响0人  程序员三千_
/**
 * 防抖
 * @param fn 需要防抖的函数
 * @param t 时间
 */
function debounce(fn, delay = 400) {
  // timer 是闭包中的
  let timer = null

  return function () {
      if (timer) {
          clearTimeout(timer)
      }
      timer = setTimeout(() => {
          fn.apply(this, arguments)
          timer = null
      }, delay)
  }
}
/**
 * 节流
 * @param fn 需要节流的函数
 * @param delay 时间
 */
export function throttle(fn, delay = 400) {
  let timer = null
  return function () {
      if (timer) {
          return
      }
      timer = setTimeout(() => {
          fn.apply(this, arguments)
          timer = null
      }, delay)
  }
}

上一篇 下一篇

猜你喜欢

热点阅读