Live2D

防止连点,防抖

//防止连点
const canHamdle = useRef(true);

function onHandleSubmit() {
    if (!canHamdle.current) {
      return
    } else {
    fun something();
      canHamdle.current = false;
    }
  }


//防抖
/**
   * @desc 函数防抖
   * @param func 目标函数
   * @param wait 延迟执行毫秒数
   * @param immediate true - 立即执行, false - 延迟执行
   */
function debounce(func, wait, immediate) {
    let timer;
    return function() {
      let context = this,
          args = arguments;
           
      if (timer) clearTimeout(timer);
      if (immediate) {
        let callNow = !timer;
        timer = setTimeout(() => {
          timer = null;
        }, wait);
        if (callNow) func.apply(context, args);
      } else {
        timer  = setTimeout(() => {
          func.apply(context, args);
        }, wait)
      }
    }
}

  

posted @ 2022-01-22 22:07  喻佳文  阅读(28)  评论(0编辑  收藏  举报