• Как повторно использовать setTimeout?

    @edshander Автор вопроса
    HardBot, Всё я разобрался, хоть проблема и была не изначально в том, чём я думал всё равно большое вам спасибо за помощь!
  • Как повторно использовать setTimeout?

    @edshander Автор вопроса
    HardBot, Как оказалось проблема не в таймере. После клика значение promo становится undefined и поэтому повторный клик не работает как надо. Сейчас не могу разобраться, как сделать так чтобы значение в promo при клике не стиралось
  • Как повторно использовать setTimeout?

    @edshander Автор вопроса
    Я правильно понимаю, что так поправить нужно?

    btnPromo.forEach(el => {
        let timeoutText;
    
        el.addEventListener('click', async (event) => {
          event.preventDefault();
          try {
            let textBtn = el.textContent;
            let promo = el.querySelector('.promo').innerHTML;
            el.textContent = 'Промокод скопирован!';
            clearTimeout(timeoutText);
            timeoutText = setTimeout(defaultText, 1000, el, textBtn);
            el.classList.add('btn-promo--success');
            navigator.clipboard.writeText(promo);
          } catch {
            console.log('Не удалось скопировать');
          }
        });
      });

    Также не работает( clearTimeout почему-то не срабатывает
    По идее же при каждом клике должен сбрасываться setTimeout и задаваться новый, но это не работает клик как будто одноразовый)