Как сделать чтобы события обработался в секунду один раз?

Чтобы событие обрабатывалось только один раз в секунду в JavaScript, можно использовать метод setTimeout и флаг проверки времени последнего срабатывания.

Вот пример кода:

let lastExecutionTime = 0;

function handleEvent() {
  const currentTime = Date.now();

  // Проверяем, прошла ли секунда с момента последнего срабатывания
  if (currentTime - lastExecutionTime > 1000) {
    console.log("Событие обработано");

    // Обновляем время последнего срабатывания
    lastExecutionTime = currentTime;
  }
}

// Привязываем обработчик события к элементу (например, кнопке)
const button = document.querySelector("button");
button.addEventListener("click", handleEvent);

Когда событие происходит (например, клик по кнопке), функция handleEvent вызывается. Внутри функции мы сравниваем текущее время с временем последнего срабатывания. Если прошло больше секунды, выводится сообщение "Событие обработано" и обновляется время последнего срабатывания.

Таким образом, при повторных событиях в течение секунды функция handleEvent не будет вызываться, пока не пройдет одна секунда с момента последнего срабатывания.