分析:观察api的返回结果,我们发现axios在处理接口返回值时,默认会自动给包裹一个data字段,这导致我们每次在业务模块获取数据都需要写res.data.data.xxxx
解决:返回有效数据时,直接返回res.data
// 响应拦截器
service.interceptors.response.use(response => {
if (response.data.success) {
// 操作成功
+ return response.data
} else {
// 如果success为false 业务出错,直接触发reject
// 被catch分支捕获
return Promise.reject(new Error(message))
}
}, error => {
return Promise.reject(error) // 返回执行错误 让当前的执行链跳出成功 直接进入 catch
})