1
2
3
4
5
6
7
8
9
10
export function debounce(fn, delay = 500) {
  let timer
  return function (...args) {
    if (timer) {
      clearTimeout(timer)
      timer = null
    }
    timer = setTimeout(fn.bind(this, ...args), delay)
  }
}