Я работаю над реактивным проектом, который использует хуки.И мне была назначена задача
"изменить хук useInterval
или создать новый (usePoll?). Это должно работать так же, как useInterval
, но должно подождать, пока запрос ajax
не будетзавершить до запуска таймера ".
Я новичок в реакции крючков и искал решение для этого, но не смог найти.Текущая функция useInterval
выглядит следующим образом.
import React, { useEffect, useRef } from 'react';
export function useInterval(callback, delay, immediate = true) {
const savedCallback = useRef();
// Remember the latest callback.
useEffect(() => {
savedCallback.current = callback;
}, [callback]);
// Set up the interval.
useEffect(() => {
function tick() {
savedCallback.current();
}
if (delay !== null) {
if (immediate) {
tick();
}
let id = setInterval(tick, delay);
return () => clearInterval(id);
}
}, [delay]);
}
и используется в программе следующим образом.
useInterval(() => {
get(`/api/v1/streams/1`).then(({ data: { data } }) => {
setStream(data);
});
}, 5000);
, и мне нужно изменить функцию useInterval, чтобы дождаться запроса ajaxзавершено до запуска таймера.Было бы здорово, если бы кто-нибудь мог мне помочь в этом.Спасибо