Задать вопрос
nickola105
@nickola105
начинающий

Почему дважды а то четырежды уходит запрос?

Всем привет.
Есть такая функция
promoAnswer() {setTimeout(() => {
                const regex = /^[A-Za-z0-9]{8}$/;
                //debugger
                if (regex.test(this.promocode)) {
                    console.log('good');
                    this.$http.post('set-promo',  {code : this.promocode },{emulateJSON: true})
                }                    
             else {
                    this.isCorrectly = false;
                    if (this.promocode.length === 0)
                        this.isCorrectly = true;
                }
            } , 2000)}

setTimeOut используется для имитации, что машина ждет продолжения ввода юзером кода, однако если он через пару минут не продолжил она выдает ему соответствующий текст. но если он ввел слово до конца, запрос уходит несколько раз. по всей видимости это зависит сколько раз он прерывался в 2 сек.
Как победить?
  • Вопрос задан
  • 280 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Удалять надо таймер, если он уже установлен. Что-то вроде
var timerId = 0;
promoAnswer() {
  if (timerId > 0) {
    clearTimeout(timerId);
  }
  timerId = setTimeout(...)
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@timokins
Посмотрите в сторону Debounce (Debouncing),
это то, что Вам нужно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы