Создавайте cancelToken для конкретного запроса (cancelToken.source()), передавайте его в каждый запрос и отслеживайте, завершился ли сам запрос. Если нет, то отменяйте.
https://github.com/axios/axios#cancellation
const cancelToken = axios.CancelToken;
const usePost = () => {
const source = useRef(null);
return () => {
if (source.current) {
source.current.cancel();
}
source.current = cancelToken.source();
const result = http.post(`${API_URL}.${METHODS.CALL_ENROLLMENT}`, { cancelToken, userId, filter });
// ........
result.finally(() => {
// Обнуляем токен при завершении запроса
source.current = null;
});
return result;
}
}