black1277 Да, все верно, у меня немного другая реализация получилась, у нас старый пакет axios который пока не можем поднять по собственным соображениям, поэтому сделал с помощью CancelToken
https://axios-http.com/docs/cancellation
Санка которая запускается на событие download
const CancelToken = axios.CancelToken;
const source = CancelToken.source();
export const uploadThunk = (uploadData) => {
return async (dispatch: Dispatch<Action>, getState: () => RootState) => {
try {
await axiosInst.post(
`${upload_url}/${subjectId}/upload`,
uploadData, {cancelToken: source.token}
);
} catch (e) {
console.log("Failed upload", e);
}
};
};
Отменяем предыдущий запрос по клику кнопки на фронте
export const cancelUploadThunk = () => {
return async (dispatch: Dispatch<Action>, getState: () => RootState) => {
source.cancel("Operation canceled by the user.");
};
};