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

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

parent 78820892
...@@ -29,6 +29,8 @@ let reqNum = 0; ...@@ -29,6 +29,8 @@ let reqNum = 0;
axios.defaults.baseURL = config.basicHost; axios.defaults.baseURL = config.basicHost;
axios.defaults.timeout = 30000; axios.defaults.timeout = 30000;
const wait = async seconds => new Promise(resolve => setTimeout(resolve, seconds));
function beforeRequest() { function beforeRequest() {
reqNum++; reqNum++;
store.dispatch("setIsLoading", true); store.dispatch("setIsLoading", true);
...@@ -88,7 +90,7 @@ axios.interceptors.response.use( ...@@ -88,7 +90,7 @@ axios.interceptors.response.use(
store.dispatch("setIsPayWait", false); store.dispatch("setIsPayWait", false);
return Promise.reject(response.data); return Promise.reject(response.data);
}, },
err => { async err => {
afterRequest(); afterRequest();
store.dispatch("setIsPayWait", false); store.dispatch("setIsPayWait", false);
// 判断是否取消请求 // 判断是否取消请求
...@@ -100,11 +102,19 @@ axios.interceptors.response.use( ...@@ -100,11 +102,19 @@ axios.interceptors.response.use(
return Promise.resolve(res); return Promise.resolve(res);
} }
// 错误提示
console.error("axios:", err.message, err); 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) { if (err.response) {
err.message = ERR_MESSAGE_MAP.status[err.response.status] || `连接错误${err.response.status}`; err.message = ERR_MESSAGE_MAP.status[err.response.status] || `连接错误${err.response.status}`;
} else { } 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