refactor: http interceptors

This commit is contained in:
张传龙 2022-09-24 15:27:26 +08:00
parent 8806a6cb43
commit 2d879d0592
3 changed files with 7 additions and 8 deletions

View File

@ -1,5 +1,4 @@
import { useUserStore } from '@/store'
import { isNullOrUndef } from '@/utils'
export function addBaseParams(params) {
if (!params.userId) {

View File

@ -1,5 +1,5 @@
import axios from 'axios'
import { repReject, repResolve, reqReject, reqResolve } from './interceptors'
import { resReject, resResolve, reqReject, reqResolve } from './interceptors'
export function createAxios(options = {}) {
const defaultOptions = {
@ -10,7 +10,7 @@ export function createAxios(options = {}) {
...options,
})
service.interceptors.request.use(reqResolve, reqReject)
service.interceptors.response.use(repResolve, repReject)
service.interceptors.response.use(resResolve, resReject)
return service
}

View File

@ -25,10 +25,10 @@ export function reqReject(error) {
return Promise.reject(error)
}
export function repResolve(response) {
export function resResolve(response) {
// TODO: 处理不同的 response.headers
const { data, status, config, statusText } = response
if (response.data?.code !== 0) {
if (data?.code !== 0) {
const code = data?.code ?? status
/** 根据code处理对应的操作并返回处理后的message */
@ -36,12 +36,12 @@ export function repResolve(response) {
/** 需要错误提醒 */
!config.noNeedTip && $message.error(message)
return Promise.reject({ code, message, error: response?.data })
return Promise.reject({ code, message, error: data || response })
}
return Promise.resolve(data)
}
export function repReject(error) {
export function resReject(error) {
if (!error || !error.response) {
const code = error?.code
/** 根据code处理对应的操作并返回处理后的message */
@ -54,5 +54,5 @@ export function repReject(error) {
const message = resolveResError(code, data?.message ?? error.message)
/** 需要错误提醒 */
!config?.noNeedTip && $message.error(message)
return Promise.reject({ code, message, error: error.response?.data })
return Promise.reject({ code, message, error: error.response?.data || error.response })
}