JSFiddle - React, Tailwind, and code Playground

by Julien Etienne

JavaScript

function debounce(callback, delay) {

  return function(parameters) {
    let onceTimestamp;
    let time;
    let once = true;
    let id;
    let count = 0;
    let count2 = 0
    let allowed = 0;

    function loop(timestamp) {
      time = timestamp;
      if (once || timestamp > (onceTimestamp + delay) && count < 2) {
        callback(parameters)
      }
      once = false;
      onceTimestamp = timestamp;
    }
    id = requestAnimationFrame(loop)
  }

  requestAnimationFrame(loop);
}



function hello(e) {
  console.log('hello ' + e);
}

const debounceFunc = debounce(hello, 500);

window.addEventListener('click', debounceFunc)