2024-06-11 10:35:01 +08:00

31 lines
905 B
TypeScript

import { axiosCanceler } from '@/axios/utils/interceptor'
import type { AxiosRequestInterceptor, FetchErrorFunction } from '@/axios/types'
/**
*
* @param ins 当前请求实例
* @param mode 当前环境
*
* @description
* 移除请求拦截器与注入请求拦截器。
*/
const injectRequestCanceler: AxiosRequestInterceptor = (ins, mode) => {
axiosCanceler.removePendingRequest(ins) // 检查是否存在重复请求, 若存在则取消已发的请求
axiosCanceler.addPendingRequest(ins) // 把当前的请求信息添加到 pendingRequest 表中
}
/**
*
* @param error 请求错误信息
* @param mode 当前环境
*
* @description
* 请求错误时候,移除请求拦截器。
*/
const requestErrorCanceler: FetchErrorFunction = (error, mode) => {
axiosCanceler.removePendingRequest(error) // 移除请求拦截器
}
export { injectRequestCanceler, requestErrorCanceler }