axios请求拦截:添加额外参数:
平时接口封装:
import request from '@/utils/request';
//
export const getList = async (data, otherConfig) => {
return await request({
url: `getList`,
method: 'post',
data,
otherConfig
});
};
// 平时使用,特殊页面
const res = await getList(data,{loading:true,...})
场景1:如果确定该接口为长接口,比较耗时等,其他相关配置baseURL等
export const getList = async (data, otherConfig) => {
return await request({
url: `getList`,
method: 'post',
data,
otherConfig:{
...otherConfig,
timeout:60000,
baseURL:'/api'
}
});
};
// response 拦截器
service.interceptors.response.use(
(response) => {
const res = response.data;
// 其他处理省略...
return res;
},
async (error) => {
// 根据实际情况设置
// 如果是返回reject则会被catch捕获,await之后的代码不会执行
// return Promise.reject(error);
// 如果是以下,则不会被catch捕获,await后代码会执行
return Promise.resolve(error)
}
);
普通情况:接口error错误时返回 Promise.reject(err) 不再推荐
接口响应拦截处理
错误时返回 return Promise.reject(error) === 中断拦截
const funA = async () => {
try{
const res = await 异常接口()
console.log('AAA:',res);
}catch(err){
console.log('AAA:err',err);
}
}
const funB = async () => {
try{
const res = await 正常接口()
console.log('BBB:',res);
}catch(err){
console.log(&#