Задать вопрос
andreichirkov
@andreichirkov
Frontend разработчикк

Как вызвать действие, если ответ API больше X секунд?

Представим, что есть интернет-магазин.
Мне нужно, чтобы при переходе в категорию товаров и их загрузке было 2 варианта событий.

1 - ответ от API меньше 1 секунды -> лоадер не показывается.
2 - ответ от API больше 1 секунды -> показывается лоадер.

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

Зачем? Хочу исключить дергание (появление и исчезание) лоадера при быстром интернете (99% случаев)
и задать особые условия при медленном интернете.

Это возможно вообще? Гуглеж не дал результата.
Или кто думал об этом буду рад услышать варианты решения подобной проблемы.
  • Вопрос задан
  • 85 просмотров
Подписаться 1 Средний 2 комментария
Решения вопроса 1
IonDen
@IonDen
JavaScript developer. IonDen.com
Вам нужно параллельно запустить таймер и ваш запрос.
Если запрос завершится раньше - очистите таймер и лоадер не покажется.

let timerId = setTimeout(() => {
  // show loader
}, 1000);

fetch('API url').then((data) => {
  // prevent loader show
  clearTimeout(timerId);

  // show result
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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