|
|
|
@ -1,42 +1,4 @@ |
|
|
|
|
import req1 from '@/utils/requset' |
|
|
|
|
import { AxiosInstance } from 'axios' |
|
|
|
|
function copyRequest(req1: AxiosInstance, instanceConfig = {}) { |
|
|
|
|
let request: AxiosInstance, copyStatus: boolean |
|
|
|
|
try { |
|
|
|
|
// @ts-ignore
|
|
|
|
|
const req2 = req1.create(instanceConfig) |
|
|
|
|
function acopyInterceptors(target: any, interceptorManager: any) { |
|
|
|
|
const handlers = interceptorManager.handlers |
|
|
|
|
for (let index = 0; index < handlers?.length; index++) { |
|
|
|
|
const { fulfilled, rejected, runWhen, synchronous } = handlers[index] |
|
|
|
|
let options |
|
|
|
|
if (synchronous !== false || runWhen !== null) |
|
|
|
|
options = { synchronous, runWhen } |
|
|
|
|
target.use(fulfilled, rejected, options) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
acopyInterceptors(req2.interceptors.request, req1.interceptors.request) |
|
|
|
|
acopyInterceptors(req2.interceptors.response, req1.interceptors.response) |
|
|
|
|
request = req2 |
|
|
|
|
copyStatus = true |
|
|
|
|
} catch (error) { |
|
|
|
|
console.warn('拷贝失败,私有拦截器可能失效:\n', error) |
|
|
|
|
request = req1 |
|
|
|
|
copyStatus = false |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return { request, copyStatus } |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const { request, copyStatus } = copyRequest(req1) |
|
|
|
|
|
|
|
|
|
// 若拷贝成功,添加自己独有的拦截器
|
|
|
|
|
if (copyStatus) { |
|
|
|
|
request.interceptors.response.use((response: any) => { |
|
|
|
|
if (response.code >= 200 && response.code < 300) return response |
|
|
|
|
else return Promise.reject(response) |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
import request from '@/utils/requset' |
|
|
|
|
|
|
|
|
|
// =============================================================================
|
|
|
|
|
enum api { |
|
|
|
|