Реагировать - периодически получать данные (веб-запросы) - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть проект ReactJS, и я хочу периодически получать данные с помощью axios.

Например, я хотел бы отправлять GET-запросы типа:

  • Запрос A каждые дваминут
  • Запрос B & C каждые три минуты
  • Запрос D каждые пять минут
  • Запрос E, F каждые шесть минут
  • Запрос G каждые шесть сполминуты

Я попытался использовать следующее в componentDidMount ():

setInterval(() => { }, 60 * 1000 * 2);
setInterval(() => { }, 60 * 1000 * 3);
...

Это кажется очень плохой идеей, потому что некоторые из моих компонентов всегда выполняют рендеринг (дляНапример, карусель моего слайдера больше не скользит).

Какое лучшее решение для таких периодических загрузок?

1 Ответ

0 голосов
/ 04 апреля 2019

Приведенный выше вариант использования имеет 2 переменных параметра:

  1. Интервал (ы) времени - 2, 3, 5, 6, 6,5
  2. Веб-запрос (ы): - A, B, C, D, E, F, G

Создайте массив объектов как [{webRequest1: timeInterval1}, .. {webRequestN: timeIntervalN}]. Это определяет необходимые отображения, может быть сделано в некотором конфигурационном файле, где доступны все конфигурации.

Создайте функцию, которая будет принимать этот массив в качестве параметра и вызывать аксиос. Создайте таймеры, такие как таймер запуска и таймер окончания, которые должны поддерживаться индивидуально для каждого отображения.

Надеюсь, это поможет понять проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...