Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mould-vuecli3
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lhfe
mould-vuecli3
Commits
0482d4ae
Commit
0482d4ae
authored
Oct 04, 2020
by
lipengcheng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: 一些优化
parent
96e0d61b
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
19 additions
and
25 deletions
+19
-25
index.js
src/api/index.js
+0
-1
index.js
src/plugins/axios/index.js
+16
-21
home.vue
src/views/home.vue
+3
-3
No files found.
src/api/index.js
View file @
0482d4ae
/**api管理页面
* apiMap中新增需要的api
*
* 导出的requestMap是一个对象,属性名为调用时的名称,值为实际请求方法
* 方法接收两个对象参数,第一个为需要传递的数据,第二个为请求的配置
* 第一个参数:如果为put/post/patch方法中的一种,会被转化为data属性;其余则是params
...
...
src/plugins/axios/index.js
View file @
0482d4ae
...
...
@@ -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
)
}
)
...
...
src/views/home.vue
View file @
0482d4ae
...
...
@@ -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
()
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment