feat: 统一request 所有错误处理

This commit is contained in:
bac-joker 2021-04-12 11:29:24 +08:00
parent d952aa9008
commit 6f4028bb7d
3 changed files with 23 additions and 12 deletions

View File

@ -65,8 +65,8 @@ export const request = {
404(error) {
},
commonAbnormalCodeHandler(response) {
// 非 0且非 11199(前面已经配置过 11199) code 其他异常code处理逻辑
default(error) {
// 异常统一处理
}
},
// 其他 axios 配置

View File

@ -2,10 +2,22 @@ import { isObject } from './helpers';
function handleAbnormalCode(errorHandler = {}, code, response) {
if (errorHandler[code]) {
errorHandler[code](response);
} else if (errorHandler.commonAbnormalCodeHandler) {
errorHandler[code](response.data);
} else if (errorHandler.default) {
// 处理其他异常
errorHandler.commonAbnormalCodeHandler(response);
errorHandler.default({
response
});
}
}
function handleRequestError(errorHandler = {}, error) {
if (error.type) {
errorHandler[error.type] && errorHandler[error.type](error);
} else if (error.response) {
errorHandler[error.response.status] && errorHandler[error.response.status](error);
} else if (errorHandler.default) {
errorHandler.default(error);
}
}
@ -22,11 +34,7 @@ export default async (ctx, next) => {
ctx.error = response; // code 不为零进入 reject
}
} else if (error) {
if (error.type) {
errorHandler[error.type] && errorHandler[error.type](error);
} else if (error.response) {
errorHandler[error.response.status] && errorHandler[error.response.status](error);
}
handleRequestError(errorHandler, error);
}
await next();

View File

@ -1,10 +1,13 @@
export const request = {
errorHandler: {
111(responseData) {
console.log(responseData);
},
404() {
console.log('to 404 page');
},
commonAbnormalCodeHandler(res) {
console.log(res.data.code);
default(error) {
console.log(error.response.data);
}
}
};