Commit 0482d4ae authored by lipengcheng 's avatar lipengcheng

fix: 一些优化

parent 96e0d61b
/**api管理页面
* apiMap中新增需要的api
*
* 导出的requestMap是一个对象,属性名为调用时的名称,值为实际请求方法
* 方法接收两个对象参数,第一个为需要传递的数据,第二个为请求的配置
* 第一个参数:如果为put/post/patch方法中的一种,会被转化为data属性;其余则是params
......
......@@ -26,9 +26,8 @@ let pendingPool = new Map()
*/
const requestInterceptors = request.interceptors.request.use(
(config) => {
// 用于请求响应异常后在pendingPool中将其删除,否则异常的请求无法再发起
// 用于请求响应异常拦截器中获取请求信息,后在pendingPool中将其删除,否则异常的请求无法再发起
request.config = Object.assign({}, config)
// console.log('config:', config)
// 在发送请求之前做些什么
// config.headers.common['cookie-id'] = cookieId
config.cancelToken = new axios.CancelToken((cancelFn) => {
......@@ -50,7 +49,7 @@ const responseInterceptors = request.interceptors.response.use(
const { config } = response
pendingPool.delete(config.url)
console.log('响应response suc:', response)
// console.log('响应response suc:', response)
return Promise.resolve(handleResponse(response))
},
......@@ -62,17 +61,16 @@ const responseInterceptors = request.interceptors.response.use(
// 第二个请求发不出去会直接被cancel掉进入到异常响应,然后从pendignPool中删除,第三次请求发出的时候就无法正确判断这个请求是否还是pending状态会正常发出
if (!axios.isCancel(err)) pendingPool.delete(config.url)
console.log('request.config:', request.config)
console.log('响应拦截err1:', err)
console.log('err.stack:', err.stack)
console.log('err.response:', err.response)
// console.log('err.response.status:', err.response.status)
// console.log('err.response.data:',err.response.data)
// console.log('err.response.data.code:', err.response.data.code)
// console.log('err.response.data.message:', err.response.data.message)
console.log('axios.isCancel(err):', axios.isCancel(err))
console.log('Array.from(pendingPool.keys()):', Array.from(pendingPool.keys()))
console.log('pendingPool:', pendingPool.keys())
// console.log('响应拦截err1:', err)
// console.log('err.stack:', err.stack)
// console.log('err.response:', err.response)
// // console.log('err.response.status:', err.response.status)
// // console.log('err.response.data:',err.response.data)
// // console.log('err.response.data.code:', err.response.data.code)
// // console.log('err.response.data.message:', err.response.data.message)
// console.log('axios.isCancel(err):', axios.isCancel(err))
// console.log('Array.from(pendingPool.keys()):', Array.from(pendingPool.keys()))
// console.log('pendingPool:', pendingPool.keys())
if (!err) return Promise.reject(err)
......@@ -82,18 +80,15 @@ const responseInterceptors = request.interceptors.response.use(
// 没有response(没有状态码)的情况
// eg: 超时;断网;请求重复被取消;主动取消请求;
else {
console.log('else err===:', err)
// 错误信息err传入isCancel方法,可以判断请求是否被取消
if (axios.isCancel(err)) {
throw new axios.Cancel(err.message || '请求被取消')
}
if (err.stack.includes('timeout')) {
// 超时的情况下err.response为undefined
throw new axios.Cancel(err.message || `请求'${request.config.url}'被取消`)
} else if (err.stack && err.stack.includes('timeout')) {
err.message = '请求超时!'
} else {
err.message = '连接服务器失败!'
}
err.message = '连接服务器失败!'
}
return Promise.reject(err)
}
)
......
......@@ -84,9 +84,9 @@ export default {
// console.log('eee:',eee)
// })
// console.log('vv:', vv)
// this.$api.getBanner({},{timeout: 1})
// this.$api.getBanner({},{timeout: 1})
// this.$api.login({ account: '18038018084', psw: '123456' })
this.$api.getBanner({})
this.$api.getBanner({}, { timeout: 1 })
this.$api.login({ account: '18038018084', psw: '123456' })
},
methods: {
async aaa() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment