VueJS Simple vueJS hook to handle request cancelation when new config was provided import axios, { AxiosRequestConfig, AxiosResponse } from 'axios'; import { ref } from 'vue'; export const useAxios = () => { // store tokens here to prevent re-usage token for requests from two different places const requestAbortController = ref<AbortController>(); const withCancelation = <T>( config: AxiosRequestConfig<T> ): Promise<AxiosResponse<T>> => { if (requestAbortController.value) requestAbortController.value.abort(`Cancel due to re-request data`); requestAbortController.value = new AbortController(); return axios({ ...config, signal: requestAbortController.value.signal }); }; return { withCancelation }; }; Then simple call inside your bussines logic const { data } = await withCancelation<{ data: DataResource[]; cursor: string; }>({ method: 'GET', url: `${API_URL}/data-aggregator`, params: { ...filter, limit: limit.value, cursor: cursor.value, lang: locale.value, }, });