前言
半年前端的作者
今天测试提出了一个需求, 如题。
产生原因:在网络断开的情况下没有message存在,这时错误提示弹窗就是空内容,导致错误原因提示不够明确。
解决方式
方法1给每个message.error(err.message || '未知错误') 目的是让message为空时可以有备选项
缺点 代码中太多需要添加的位置,很容易出错,添加后不一定每个位置都能测试到
方法2 在axios封装的request.js中添加拦截,具体代码如下:
instance.interceptors.response.use(
(response) => {
// 请求成功
return response.data;
},
(r) => {
let resultError = { response: r };
// 此处省略其他判断
// 没有网络时 message的内容为"Network Error"
if(r.message == "Network Error"){
resultError.message = '网络错误';
}
resultError.type = 'RequestError';
return Promise.reject(resultError);
},
);
总结
经过测试能够在断网后提示网络错误,如果能够通过测试那关,再来反馈。 如果有更好的方式欢迎在评论区指出。