为什么要封装
- 原生的请求不支持promise
- uni-app的请求不能够方便的添加请求中效果
- uni-app的请求返回值是个数组,不方便
封装思路
- 基于原生的promise来封装
- 挂载到Vue原型上
- 通过this.request的方式来使用
新建http.js
代码:
//es6
export default (params) => {
return new Promise((resolve, reject) => {
//loading 效果 数据请求加载中效果
uni.showLoading({
title: "加载中"
})
wx.request({
...params,
success(res) {
resolve(res)
},
fail(err) {
reject(err)
},
complete() {
//不管请求成没成功都会走这一步 然后隐藏 加载中的效果
uni.hideLoading()
}
})
})
}
挂载Vue原型
在main.js中添加:
import http from "./utils/http";
Vue.prototype.http=http
使用
onLong(){
this.http({
url:"请求地址"
}).then(req=>{
console.log(req)
})
}