mpvue wx.request封装
参考
proxy
封装
api.js:
export default ($wx) => {
const METHODS = ['get', 'post', 'put', 'delete']
let handler = {
get (target, property) {
target[property] = (url, params = {}) => {
return new Promise((resolve, reject) => {
$wx.request({
url,
method: property.toLocaleUpperCase(),
...params,
success: res => {
if (Number(res.statusCode) !== 200) {
$wx.showToast({ title: '通讯错误,稍后再试', icon: 'none' })
return false
}
resolve(res.data)
},
fail: error => {
reject(error)
}
})
})
}
return target[property]
}
}
const API = new Proxy({}, handler)
return API
}
复制代码
使用
main.js:
import API from 'api.js'
Vue.prototype.$API = API(wx)
xx.vue:
this.$API.get(url)
.then(res => {
// 处理成功
})
.catch(e => {
// 处理失败
})
this.$API.post(url, {data: {xx: 'xxx'}})
.then(res => {
// 处理成功
})
.catch(e => {
// 处理失败
})复制代码