|
@@ -11,7 +11,8 @@ const config = {
|
|
|
};
|
|
|
|
|
|
const _axiosApp = axios.create(config);
|
|
|
-axiosRetry(_axiosApp);
|
|
|
+// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
|
+axiosRetry(_axiosApp, { retries: 0, retryDelay: axiosRetry.exponentialDelay });
|
|
|
|
|
|
_axiosApp.interceptors.request.use(
|
|
|
function (config) {
|
|
@@ -39,6 +40,8 @@ _axiosApp.interceptors.request.use(
|
|
|
);
|
|
|
|
|
|
// Add a response interceptor
|
|
|
+// 这个用途是为了retry网络请求不要疯狂的报错,如果最后没成功,只报第一次的错误
|
|
|
+let lastRequestTimeForRetry = 0;
|
|
|
_axiosApp.interceptors.response.use(
|
|
|
(response) => {
|
|
|
if (response.config.setGlobalMask) {
|
|
@@ -50,6 +53,15 @@ _axiosApp.interceptors.response.use(
|
|
|
if (error.config?.setGlobalMask) {
|
|
|
store.decreaseGlobalMaskCount("axios");
|
|
|
}
|
|
|
+ // console.log(error.config, error.config["axios-retry"].retryCount);
|
|
|
+ if (error.config["axios-retry"]) {
|
|
|
+ const thisTime = error.config["axios-retry"].lastRequestTime;
|
|
|
+ if (lastRequestTimeForRetry === thisTime) {
|
|
|
+ return Promise.reject(error);
|
|
|
+ } else {
|
|
|
+ lastRequestTimeForRetry = thisTime;
|
|
|
+ }
|
|
|
+ }
|
|
|
const showErrorMessage = !error.config?.noErrorMessage;
|
|
|
if (!error.response) {
|
|
|
if (showErrorMessage) {
|