请注意,本文编写于 940 天前,最后修改于 940 天前,其中某些信息可能已经过时。
很多初学者并不懂这个 wx.request
如何正确的二次封装。
初学者都会知道使用 wx.request
去请求接口,成功后可以接受到 json 等数据文件,但我们后端给的数据往往都在前端接受到的数据里 data
中。每次返回的数据你都要在 response.data
中才取得到。当然还有更重要的一点,如果要改 域名/ip,你需要每个 wx.request
都改 url,这得多麻烦。因此对其进行二次封装是非常有必要的。
常规的,我们在 /utils/request.js 封装函数。
export default (url, data = {}, method = 'GET') => {
return new Promise((resolve, reject) => {
wx.request({
url: 'http://127.0.0.1:3000' + url,
data,
method,
header: {xx:xxx},
success: (res) => {
console.log('请求成功', res)
// 直接返回data中的数据
resolve(res.data)
},
fail: (err) => {
console.log('请求失败', err)
reject(err)
}
})
})
}
url
:必传,直接传资源路径,例如:/recommend/songs
data={}
:传参数,不传则默认为空对象。method = 'GET'
:传请求方式,不传则默认get请求header
:可以在登录后携带一些认证信息,例如'Authorization' : 'Bearer xxxxxxxxxxxxx'
resolve(res.data)
:请求成功直接返回 data 中的数据。
使用方法:
在其他 js 页面中导入,调用即可。
import request from '/utils/request'
// 获取用户每日推荐音乐
async getRecommendList() {
let recommendListData = await request('/recommend/songs')
this.setData({
recommendList: recommendListData.recommend
})
},
版权属于:乐心湖's Blog
本文链接:https://www.xn2001.com/archives/643.html
声明:博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!