修复异常
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
const init = () => new Promise(resolve => {
|
||||
const {axios, $glob} = window
|
||||
|
||||
let getAuthing = false
|
||||
const getToken = () => {
|
||||
getAuthing = true
|
||||
@@ -21,11 +20,20 @@ const init = () => new Promise(resolve => {
|
||||
config.headers['h-token'] = $glob.token
|
||||
return config
|
||||
}
|
||||
window.$wait = (t = 500) => new Promise(resolve => setTimeout(resolve, t))
|
||||
http.interceptors.request.use(async config => {
|
||||
while (getAuthing) {
|
||||
await $wait()
|
||||
window.$waitFor = (target, t = 500) => new Promise(resolve => {
|
||||
const interval = setInterval(() => {
|
||||
if (target) {
|
||||
clearInterval(interval)
|
||||
resolve(target)
|
||||
}
|
||||
}, t)
|
||||
if (target) {
|
||||
clearInterval(interval)
|
||||
resolve(target)
|
||||
}
|
||||
})
|
||||
http.interceptors.request.use(async config => {
|
||||
await $waitFor(!getAuthing)
|
||||
if (!$glob.token && !getAuthing) {
|
||||
await getToken()
|
||||
}
|
||||
@@ -33,6 +41,9 @@ const init = () => new Promise(resolve => {
|
||||
})
|
||||
http.interceptors.response.use(res => {
|
||||
if (res?.data) {
|
||||
if (res.data?.code == 6004) {
|
||||
return getToken().then(() => http.request(res.config))
|
||||
}
|
||||
return res.data
|
||||
} else if (res?.code == 401) {
|
||||
return getToken().then(() => http.request(res.config))
|
||||
@@ -42,4 +53,4 @@ const init = () => new Promise(resolve => {
|
||||
window.$http = http
|
||||
resolve()
|
||||
})
|
||||
await init()
|
||||
export default init()
|
||||
|
||||
Reference in New Issue
Block a user