Skip to content
On this page

防抖

描述

debounce

题解

javascript
function debounce(fn, delay = 200, immediate = false) {
  let timer = null;
  return function (...args) {
    timer && clearTimeout(timer);

    if (immediate && !timer) {
      fn.apply(this, args);
      timer = setTimeout(() => {}, 0);
      return;
    }

    timer = setTimeout(() => {
      fn.apply(this, args);
    }, delay);
  };
}