JSFiddle - React, Tailwind, and code Playground
HTML
<button id="btn">Click me</button>
JavaScript
const DELAY = 5000;
const btn = document.getElementById('btn');
const throttleFn = (fn, delayTime) => {
let initialTimeStamp = new Date().getTime();
let isFirstTimeExecution = true;
return () => {
if (isFirstTimeExecution) {
fn();
isFirstTimeExecution = false;
}
const currentTimeStamp = new Date().getTime();
if (currentTimeStamp - initialTimeStamp > delayTime) {
fn();
initialTimeStamp = new Date().getTime();
}
};
};
btn.addEventListener('click', throttleFn(() => {
console.log('clicked');
}, DELAY));