美文网首页
微信小程序的防抖和节流的实现

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

作者: 程序员三千_ | 来源:发表于2022-04-02 15:15 被阅读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)
  }
}

相关文章

网友评论

      本文标题:微信小程序的防抖和节流的实现

      本文链接:https://www.haomeiwen.com/subject/bmvtsrtx.html