import axios from 'axios'
import { baseURL } from '@/config'
class HttpRequest {
constructor(baseUrl = baseURL) {
this.baseUrl = baseUrl
this.queue = {}
}
getInsideConfig () {
const config = {
baseURL: this.baseUrl,
}
return config
}
distroy (url) {
delete this.queue[url]
if (!Object.keys(this.queue).length) {
}
}
interceptors (instance, url) {
instance.interceptors.request.use(config => {
if (!Object.keys(this.queue).length) {
}
this.queue[url] = true
return config
}, error => {
return Promise.reject(error)
})
instance.interceptors.response.use(res => {
this.distroy(url)
console.log('res' + JSON.stringify(res))
const {data} = res
return data
}, error => {
this.distroy(url)
return Promise.reject(error)
})
}
request(options) {
const instance = axios.create()
options = Object.assign(this.getInsideConfig(), options)
this.interceptors(instance, options.url)
return instance(options)
}
}
export default HttpRequest