版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/smalCat/article/details/87982937
在工作中,我们基本会遇到请求超时,需要重新发起请求或者进行相应的处理
但是axios之中,并没有超时回调给你,所以这就需要你根据error
信息来进行判断
我们开始走流程把:
1、判断超时
,网上很多都是一模一样的,完全没有自己的见解,这里我不推荐这种方式,所以,我希望你看了之后,自己去理解使用方法和思维,写出自己的东西。
`很多人使用了axios的`Interceptors`来做处理,这里就来写一下`
`建立响应拦截器`
axios.interceptors.response.use(res => {
`这里是正常流程走的,我们这里讲解的是超时处理,我就不多说了`
}, error => {
根据传回来的错误信息`erroe`进行判断
意为:`error.code`
if (error.code === 'ECONNABORTED' && error.message.indexOf('timeout') !== -1) {
console.log('根据你设置的timeout/真的请求超时 判断请求现在超时了,
你可以在这里加入超时的处理方案')
`这里我 的方案是,超时后再次请求,所以新建了一个promise`
var newHttp= new Promise(function (resolve){
resolve()
})
`newHttp实例执行完成后会再次执行`
// 返回一个promise实例,同时重新发起请求,config请求配置,包扩请求头和请求参数
return newHttp.then(function (){
return axios(config)
})
}
// 若不是超时,则返回未错误信息
return Promise.reject(error)
})