axios 之超时处理

版权声明:本文为博主原创文章,未经博主允许不得转载。 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)

	})
	

猜你喜欢

转载自blog.csdn.net/smalCat/article/details/87982937