diff --git a/packages/integrations/useAxios/index.ts b/packages/integrations/useAxios/index.ts index d843fe78d57..0f4e2b9d44c 100644 --- a/packages/integrations/useAxios/index.ts +++ b/packages/integrations/useAxios/index.ts @@ -161,12 +161,15 @@ export function useAxios, D = any>(...args: any[]) const isAborted = ref(false) const error = shallowRef>() - const cancelToken: CancelTokenSource = axios.CancelToken.source() + const cancelTokenSource = axios.CancelToken.source + let cancelToken: CancelTokenSource = cancelTokenSource() + const abort = (message?: string) => { if (isFinished.value || !isLoading.value) return cancelToken.cancel(message) + cancelToken = cancelTokenSource() isAborted.value = true isLoading.value = false isFinished.value = false @@ -195,7 +198,7 @@ export function useAxios, D = any>(...args: any[]) isFinished.value = true return { then } } - + abort() loading(true) instance(_url, { ...defaultConfig, ...typeof executeUrl === 'object' ? executeUrl : config, cancelToken: cancelToken.token }) .then((r: any) => {