gpt4 book ai didi

javascript - 使用 es6 类扩展 Axios

转载 作者:行者123 更新时间:2023-11-30 16:04:44 26 4
gpt4 key购买 nike

我对创建 API 包装器和使用 es6 类从 axios 进行扩展很感兴趣。这怎么可能? axios 有一个方法 .create() 可以让你生成一个新的 axios 对象

class Api extends Axios {
constructor(...args){
super(..args)
this.defaults.baseURL = 'https://api.com'
}
cancelOrder (id) {
return this.put(`/cancel/order/${id}`)
}
}

我知道我可以访问这个 let instance = axios.create()

有什么想法吗?

尝试 1

import axios from 'axios'
const Axios = axios.create()

class Api extends Axios {
constructor (...args) {
super(...args)
this.defaults.baseURL = 'https://api.com'
}
cancelOrder (id) {
return this.put(`/cancel/order/${id}`)
}
}

let api = new Api()

api.cancelOrder('hi')
.then(console.log)
.catch(console.log)

尝试 2

import axios from 'axios'

class Axios {
constructor () {
return axios.create()
}
}

class Api extends Axios {
constructor () {
super()
this.defaults.baseURL = 'https://api.com'
}
cancelOrder (id) {
return this.put(`/cancel/order/${id}`)
}
}

let api = new Api()

console.log(api.__proto__)

api.cancelOrder('hi')
.then(console.log)
.catch(console.log)

最佳答案

axios 当前不导出它在内部使用的 Axios 对象。

.create() 方法仅实例化一个新实例。

// Factory for creating new instances
axios.create = function create(defaultConfig) {
return new Axios(defaultConfig);
};

我创建了一个导出 Axios 类的 pr。

https://github.com/reggi/axios/commit/7548f2f79d20031cd89ea7c2c83f6b3a9c2b1da4

还有一个 github 问题:

https://github.com/mzabriskie/axios/issues/320

关于javascript - 使用 es6 类扩展 Axios,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37217716/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com