第一步:安装axios
npm install axios --save
第二步:在main.js中引入
export function request(config, success, failure) {
//创建axios实例
const instance = axios.creat({
baseURL: ‘http://192.168.14.146:8088‘,
timeout: 50000
})
//发送真正的网络请求
instance(config.baseconfig)
.then(res => {
// console.log(res) //要回调出去
success(res) //回调
})
.catch(err => {
// console.log(err) //要回调出去
failure(err) //回调
})
}
调用:
import {request} from "./network/request"
//方式一:
request({ //config
url: ‘‘,
}, res => { //success
console.log(res)
}, err => { //failure
console.log(err)
})
export function request(config) {
//创建axios实例
const instance = axios.creat({
baseURL: ‘http://192.168.14.146:8088‘,
timeout: 50000
})
//发送真正的网络请求
instance(config.baseconfig)
.then(res => {
// console.log(res) //不能直接在这里处理数据要回调出去
config.success(res) //回调
})
.catch(err => {
// console.log(err) //不能直接在这里处理数据要回调出去
config.failure(err) //回调
})
}
调用:
request({
baseconfig: {
},
success: function(res) {
},
failure: function(err) {
}
})
export function request(config) {
return new Promise((resolve, reject) => {
//创建axios实例
const instance = axios.creat({
baseURL: ‘http://192.168.14.146:8088‘,
timeout: 50000
})
//发送真正的网络请求
instance(config)
.then(res => {
// console.log(res) //要回调出去
resolve(res) //回调
})
.catch(err => {
// console.log(err) //要回调出去
reject(err) //回调
})
})
}
这样写其实是有点多余,因为axios本身返回的是一个promise(下图源码),所以可以直接return,不用自己包装promise
export function request(config) {
//创建axios实例
const instance = axios.creat({
baseURL: ‘http://192.168.14.146:8088‘,
timeout: 50000
})
//发送真正的网络请求
return instance(config)
//create 的axios返回值本身是一个promise,所以直接return就可以了,不用自己包装promise
}
调用:
//方式三
request({
url: ‘‘,
}).then(res => {
console.log(res)
}).catch(err => {
console.log(err)
})
原文:https://www.cnblogs.com/lyt0207/p/12017930.html