问题:
写项目突然报错,反复测试调试了很久发现是因为修改了拦截器的逻辑操作导致的
原因:
当前平台是没有登录页面的,因此在基于需要先获取到token,再请求其他接口数据这个需求的情况下,我将请求放在了拦截器中,设置异步获取token后,在打开拦截器,因此导致这个bug的出现
解决:
即使做异步操作也要打开拦截器的 return config
错误代码及原因:
正确写法:
// request拦截器
instance.interceptors.request.use(config => {
// 如果不存在网省Code 就拦截接口
console.log("config", config);
let Province = JSON.parse(sessionStorage.getItem("origin"))
// console.log("拦截处Province",Province);
if (Province == null) {
// HACK :在拦截处,如果Code不存在 todo........
store.dispatch('setOrigin')
.then((res)=>{
console.log("拦截器请求网省code ==》then",res);
if (res) {
console.log("123拦截器继续",);
return config
}
})
// 在这里释放拦截器
return config
}else{
return config
}
}, error => {
Promise.reject(error)
})
十七碎碎念:当前处理比较粗糙,因为没有登录页面,所以无法先获取用户信息及code值再请求接口,所以放在拦截器中,业务逻辑不是很完善,后续已经优化了无登录页的情况下如何处理前置接口信息存储,有空在写文档咯