🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
在使用的时候,每次请求都写一大串代码,特别不爽,因此,我们可以借助 ES6 的 promise 将 wx.request 封装为异步调用函数,避免回调地狱。 具体封装如下 : ```js class Request { constructor (parms) { this.withBaseURL = parms.withBaseURL this.baseURL = parms.baseURL } get (url, data) { return this.request('GET', url, data) } post (url, data) { return this.request('POST', url, data) } put (url, data) { return this.request('PUT', url, data) } request (method, url, data) { const vm = this return new Promise((resolve, reject) => { wx.request({ url: vm.withBaseURL ? vm.baseURL + url : url, data, method, success (res) { resolve(res) }, fail () { reject({ msg: '请求失败', url: vm.withBaseURL ? vm.baseURL + url : url, method, data }) } }) }) } } const request = new Request({ baseURL: 'http://test', withBaseURL: true }) module.exports = request ``` 使用的时候: ```js const libs = require('../../libs/index') libs.request.get('/aaa', { a: 0, b: 1 }).then(res => { console.log(res) }).catch(e => { console.log(e) }) ```