| | |
| | | // 防止同一接口短时间内重复请求 |
| | | if (config.url) { |
| | | if (reqList.includes(config.url)) { |
| | | return Promise.reject(new axios.Cancel(`重复请求:${config.url}`)) |
| | | // return Promise.reject(new axios.Cancel(`重复请求:${config.url}`)) |
| | | } else { |
| | | reqList.push(config.url) |
| | | } |
| | |
| | | instance.interceptors.response.use( |
| | | (res: AxiosResponse) => { |
| | | |
| | | setTimeout(() => allowRequest(res.config.url), 1000) |
| | | // setTimeout(() => allowRequest(res.config.url), 1000) |
| | | if (String(res.status).charAt(0) !== '2') { |
| | | return Promise.reject({ |
| | | code: res.status, |
| | |
| | | const anyErr = err as any |
| | | const configUrl = anyErr?.config?.url |
| | | // 失败后 1s 允许再次请求 |
| | | setTimeout(() => allowRequest(configUrl), 1000) |
| | | // setTimeout(() => allowRequest(configUrl), 1000) |
| | | |
| | | // 先判断是否是取消请求 |
| | | if (axios.isCancel(err as any)) { |
| | | console.warn('请求被取消:', (err as any)?.message) |
| | | return Promise.reject(err) |
| | | } |
| | | // if (axios.isCancel(err as any)) { |
| | | // console.warn('请求被取消:', (err as any)?.message) |
| | | // return Promise.reject(err) |
| | | // } |
| | | |
| | | // 判断是否为 axios 的错误类型(有 response) |
| | | if (axios.isAxiosError(err)) { |