使用Promise封装axios请求,在接口调用的如何重写封装的catch异常内容
代码axiosutil.js如下
static ajax(options){
return new Promise((resolve,reject)=>{
let axiosParObj = {
url:options.url,
method:options.method,
timeout:30000,
}
if(options.headers){
axiosParObj.headers = axiosParObj.headers;
}
if(options.method == 'get'){
axiosParObj.params = (options.data && options.data.params) || '';
}else{
axiosParObj.data = (options.data && options.data.params) || '';
}
axios(axiosParObj).then((response)=>{
if (response.status == '200'){
let res = response.data;
if (res.code == '0'){
resolve(res);
}else{
console.log(res.msg);
}
}else{
reject(response.data);
}
}).catch(error=>{
console.log("接口异常,请稍后重试");
});
});
}
调用axiosutil.js的代码如下:
axios.ajax({
url:'xxx/upload',
method:'post',
data:{
params:{},
}
}).then((res)=>{
if(res.error_name.length ===0){
console.log('插入成功');
}else{
console.log('插入失败');
}
}).catch(error=>{
console.log("这是我想重新覆盖的异常提示!");
});
问题:现在的axiosutil.js代码里的catch并不能给外部调用的时候重写,在调用axiosutil.js的代码中,该如果能够重写catch里的内容?想要实现效果:当是公共的异常,提示:“接口异常,请稍后重试”。当需要重新覆盖的异常:提示:“这是我想重新覆盖的异常提示!”。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你需要的不一定是你说的重写,看你的需求,你应该通过不同的状态码来抛出不同的异常