最近做小程序在调用后台接口的时候感觉总写很长一串,很冗杂。非常想念vue中promise封装的写法,于是自己初步封装了一下。
1.url 接口地址
2.headers请求头
3. params 请求参数
4.host 服务端地址
POST:
export function httpPost(url, params,params,) { let promise = new Promise((resolve, reject) => { wx.request({ url: host + url, header: headers ? headers : { "content-type": "application/json" }, data: params, method: "POST", success: function(res) { resolve(res); }, fail: err => { reject(err); } }); }); return promise; } |
GET:
export function httpGet(url, params, headers) { let paramsStr = url; let num = 0; // 将params对象转换成字符串 for (let i in params) { if (num < 1) { paramsStr += `?${i}=${params[i]}`; } else { paramsStr += `&${i}=${params[i]}`; } num++; } let promise = new Promise((resolve, reject) => { wx.request({ url: host + paramsStr, header: headers ? headers : { "content-type": "application/json" }, method: "GET", success: function(res) { resolve(res); }, fail: err => { reject(err); } }); }); return promise; } |
到这儿呢就结束了,就可以愉快的通过then来取回调了。
当然在这里还可以做错误统一处理,我这儿只是简单的做了封装,有兴趣的小伙伴可以进一步封装。