设置interceptors后拿不到abort解决方案
import Taro from '@tarojs/taro'
import { pageToLogin } from './utils'
import { HTTP_STATUS } from './config'
const customInterceptor = chain => {
const requestParams = chain.requestParams
let obj = chain
.proceed(requestParams)
const abort = obj.abort
obj = obj.then(res => {
if (res.statusCode === HTTP_STATUS.NOT_FOUND) {
Taro.showToast({
title: '请求资源不存在',
icon: 'none',
duration: 2000
})
return Promise.reject({ desc: '请求资源不存在' })
} else if (res.statusCode === HTTP_STATUS.BAD_GATEWAY) {
Taro.showToast({
title: '服务端出现了问题',
icon: 'none',
duration: 2000
})
return Promise.reject({ desc: '服务端出现了问题' })
} else if (res.statusCode === HTTP_STATUS.FORBIDDEN) {
Taro.setStorageSync('Authorization', '')
pageToLogin()
Taro.showToast({
title: '没有权限访问',
icon: 'none',
duration: 2000
})
return Promise.reject({ desc: '没有权限访问' })
} else if (res.statusCode === HTTP_STATUS.AUTHENTICATE) {
Taro.setStorageSync('Authorization', '')
pageToLogin()
Taro.showToast({
title: '需要鉴权',
icon: 'none',
duration: 2000
})
return Promise.reject({ desc: '需要鉴权' })
} else if (res.statusCode === HTTP_STATUS.SERVER_ERROR) {
Taro.showToast({
title: '服务器错误',
icon: 'none',
duration: 2000
})
return Promise.reject({ desc: '服务器错误' })
} else if (res.statusCode === HTTP_STATUS.SUCCESS) {
if ([ '-1','-2' ].includes(res?.data?.code)) {
Taro.showToast({
title: res.data.message || '操作失败,请联系管理员',
icon: 'none',
duration: 2000
})
}
return res.data
}
})
.catch(error => {
console.error(error)
return Promise.reject(error)
})
obj.abort = abort
return obj
}
const interceptors = [ customInterceptor ]
export default interceptors


节点很深无法拿到dom解决方案
