Commit 6e739529 authored by 郝聪敏's avatar 郝聪敏

fix: 网络异常添加重试机制

parent 78820892
......@@ -29,6 +29,8 @@ let reqNum = 0;
axios.defaults.baseURL = config.basicHost;
axios.defaults.timeout = 30000;
const wait = async seconds => new Promise(resolve => setTimeout(resolve, seconds));
function beforeRequest() {
reqNum++;
store.dispatch("setIsLoading", true);
......@@ -88,7 +90,7 @@ axios.interceptors.response.use(
store.dispatch("setIsPayWait", false);
return Promise.reject(response.data);
},
err => {
async err => {
afterRequest();
store.dispatch("setIsPayWait", false);
// 判断是否取消请求
......@@ -100,11 +102,19 @@ axios.interceptors.response.use(
return Promise.resolve(res);
}
// 错误提示
console.error("axios:", err.message, err);
if (axios.isCancel(err)) {
console.error("Request canceled!", err);
// 提示网络错误时尝试重试
if (
err.message === "Network Error" &&
(!err.config?.retryCount || err.config?.retryCount <= 3)
) {
if (!err.config?.retryCount) err.config.retryCount = 1;
err.config.retryCount++;
await wait(3000);
return axios.request(err.config);
}
// 错误提示
if (err.response) {
err.message = ERR_MESSAGE_MAP.status[err.response.status] || `连接错误${err.response.status}`;
} else {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment