PathLogs UI
English

Hooks

usePolling

Периодический опрос с паузой в фоне и догоном при возврате.

Периодический опрос — для значений, ради которых не стоит держать постоянное соединение: счётчик непрочитанных, статус фоновой задачи, число участников онлайн.

Пример

Опрос каждые 3 секунды. Переключитесь на другую вкладку и вернитесь — время обновится сразу, а не через интервал.

Начальное значение приходит с сервера, поэтому счётчик показывает правду с первого кадра, а не мигает нулём до первого запроса.

Параметры

fetcher*() => Promise<T>

Что запрашивать. Ошибки проглатываются — попробуем в следующий раз.

initial*T

Значение до первого успешного запроса. Обычно приходит с сервера.

intervalnumber

по умолчанию: 30000

Период опроса в миллисекундах.

pauseWhenHiddenboolean

по умолчанию: true

Не опрашивать, пока вкладка в фоне. Значение в невидимой вкладке никто не читает.

immediateboolean

по умолчанию: false

Опросить сразу при монтировании, не дожидаясь первого интервала.

enabledboolean

по умолчанию: true

Выключить опрос, не снимая хук.

Возвращает { data, refresh }. refresh дёргает тот же путь, что и таймер, — одна точка входа, одна политика.

Когда опрос, а когда поток

  • Опрос — когда значение маленькое, меняется редко и задержка в десятки секунд никого не расстроит. Не требует ничего от сервера, кроме обычного эндпоинта.
  • Поток (useEventStream) — когда изменение должно долетать за секунды и его видят несколько человек сразу: доска, комментарии, совместное редактирование.

Держать открытое соединение ради числа в углу экрана — плохая сделка: соединений столько же, сколько вкладок, а пользы на копейку.