Skip to content

Commit

Permalink
fix(taro): 内置拦截器向上暴露 abort, fix #4386
Browse files Browse the repository at this point in the history
  • Loading branch information
Chen-jj committed Sep 16, 2019
1 parent 512d4ce commit ddbbcef
Showing 1 changed file with 13 additions and 7 deletions.
20 changes: 13 additions & 7 deletions packages/taro/src/interceptor/interceptors.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
export function timeoutInterceptor (chain) {
const requestParams = chain.requestParams
return new Promise((resolve, reject) => {
let p
const res = new Promise((resolve, reject) => {
let timeout = setTimeout(() => {
timeout = null
reject(new Error('网络链接超时,请稍后再试!'))
}, (requestParams && requestParams.timeout) || 60000)

chain.proceed(requestParams)
p = chain.proceed(requestParams)
p
.then(res => {
if (!timeout) return
clearTimeout(timeout)
Expand All @@ -17,15 +19,19 @@ export function timeoutInterceptor (chain) {
reject(err)
})
})
if (p.abort) res.abort = p.abort
return res
}

export function logInterceptor (chain) {
const requestParams = chain.requestParams
const { method, data, url } = requestParams
console.log(`http ${method || 'GET'} --> ${url} data: `, data)
return chain.proceed(requestParams)
.then(res => {
console.log(`http <-- ${url} result:`, res)
return res
})
const p = chain.proceed(requestParams)
const res = p.then(res => {
console.log(`http <-- ${url} result:`, res)
return res
})
if (p.abort) res.abort = p.abort
return res
}

0 comments on commit ddbbcef

Please sign in to comment.