Examples
November 13, 2023Less than 1 minute
前面使用的axios实例是全局的axios实例,在实际生产环境中可能会有不同类型的网络请求需求,因此需多个axios实例进行处理。
//创建实例
const instance1 = axios.create({
baseURL: 'http://httpbin.org',
timeout: 5000
})
//使用实例
instance1({
url: 'get'
}).then(data => {
})
Encapsulation
method 1
//网络封装模块
import axios from 'axios'
//第一种封装方式
// @param config 请求参数
// @param success 成功请求回调函数
// @param failure 失败回调函数
export function request(config, success, failure){
const instance = axios.create({
baseURL: '',
timeout: 5000
})
instance(config)
.then(res => {
success(res)
})
.catch(err => {
failure(err)
})
}
method 2
//第二种封装方式
// @param config 请求参数
// @param success 成功请求回调函数
// @param failure 失败回调函数
export function request(config){
const instance = axios.create({
baseURL: '',
timeout: 5000
})
instance(config.baseConfig)
.then(res => {
config.success(res)
})
.catch(err => {
config.failure(err)
})
}
method 3
//第三种封装方式
export function request(config){
return new Promise((resolve, reject) => {
const instance = axios.create({
baseURL: '',
timeout: 5000
})
instance(config.baseConfig)
.then(res => {
resolve(res)
})
.catch(err => {
reject(err)
})
}
}
method 4
//第四种封装方式
export function request(config){
const instance = axios.create({
baseURL: '',
timeout: 5000
})
return instance(config.baseConfig)
}