Commit b69dcd79d742fd171302ce0f48c7750d60da217f
1 parent
4da3d2c5
fix(axios): transformRequestHook logic error
Showing
1 changed file
with
23 additions
and
38 deletions
src/utils/http/axios/index.ts
... | ... | @@ -58,47 +58,32 @@ const transform: AxiosTransform = { |
58 | 58 | |
59 | 59 | // 这里逻辑可以根据项目进行修改 |
60 | 60 | 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) { | |
76 | 62 | return result; |
77 | 63 | } |
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 | + } | |
99 | 85 | } |
100 | - throw new Error(t('sys.api.apiRequestFailed')); | |
101 | - //return errorResult; | |
86 | + throw new Error(message || t('sys.api.apiRequestFailed')); | |
102 | 87 | }, |
103 | 88 | |
104 | 89 | // 请求之前处理config | ... | ... |