Skip to content

Commit b69dcd7

Browse files
committed
fix(axios): transformRequestHook logic error
1 parent 4da3d2c commit b69dcd7

File tree

1 file changed

+23
-38
lines changed

1 file changed

+23
-38
lines changed

src/utils/http/axios/index.ts

+23-38
Original file line numberDiff line numberDiff line change
@@ -58,47 +58,32 @@ const transform: AxiosTransform = {
5858

5959
// 这里逻辑可以根据项目进行修改
6060
const hasSuccess = data && Reflect.has(data, 'code') && code === ResultEnum.SUCCESS;
61-
if (!hasSuccess) {
62-
if (message) {
63-
// errorMessageMode=‘modal’的时候会显示modal错误弹窗,而不是消息提示,用于一些比较重要的错误
64-
if (options.errorMessageMode === 'modal') {
65-
createErrorModal({ title: t('sys.api.errorTip'), content: message });
66-
} else if (options.errorMessageMode === 'message') {
67-
createMessage.error(message);
68-
}
69-
}
70-
throw new Error(message);
71-
//return errorResult;
72-
}
73-
74-
// 接口请求成功,直接返回结果
75-
if (code === ResultEnum.SUCCESS) {
61+
if (hasSuccess) {
7662
return result;
7763
}
78-
// 接口请求错误,统一提示错误信息
79-
if (code === ResultEnum.ERROR) {
80-
if (message) {
81-
createMessage.error(data.message);
82-
throw new Error(message);
83-
} else {
84-
const msg = t('sys.api.errorMessage');
85-
createMessage.error(msg);
86-
throw new Error(msg);
87-
}
88-
//return errorResult;
89-
}
90-
// 登录超时
91-
if (code === ResultEnum.TIMEOUT) {
92-
const timeoutMsg = t('sys.api.timeoutMessage');
93-
createErrorModal({
94-
title: t('sys.api.operationFailed'),
95-
content: timeoutMsg,
96-
});
97-
throw new Error(timeoutMsg);
98-
//return errorResult;
64+
65+
// 在此处根据自己项目的实际情况对不同的code执行不同的操作
66+
// 如果不希望中断当前请求,请return数据,否则直接抛出异常即可
67+
switch (code) {
68+
case ResultEnum.TIMEOUT:
69+
const timeoutMsg = t('sys.api.timeoutMessage');
70+
createErrorModal({
71+
title: t('sys.api.operationFailed'),
72+
content: timeoutMsg,
73+
});
74+
throw new Error(timeoutMsg);
75+
default:
76+
if (message) {
77+
// errorMessageMode=‘modal’的时候会显示modal错误弹窗,而不是消息提示,用于一些比较重要的错误
78+
// errorMessageMode='none' 一般是调用时明确表示不希望自动弹出错误提示
79+
if (options.errorMessageMode === 'modal') {
80+
createErrorModal({ title: t('sys.api.errorTip'), content: message });
81+
} else if (options.errorMessageMode === 'message') {
82+
createMessage.error(message);
83+
}
84+
}
9985
}
100-
throw new Error(t('sys.api.apiRequestFailed'));
101-
//return errorResult;
86+
throw new Error(message || t('sys.api.apiRequestFailed'));
10287
},
10388

10489
// 请求之前处理config

0 commit comments

Comments
 (0)