Throttle
function test () { console.log('Hello World') }
const t = throttle(test, 500)
t()
setTimout(()=> {
  t()
}, 50)
setTimout(()=> {
  t()
}, 750)
function throttle(fn, delay) {
  let exec = false
  let timer
  return (...args) => {
    if (!exec) {
      exec = true
      fn(args)
      timer = setTimeout(()=> {
        exec = false
      }, delay)
    }
  }
}