简介
Promise
对象表示异步操作最终的完成(或失败)以及其结果值。在javascript中,当发起异步方法调用时候,要想在调用方线程获取异步结果,可以借助promise对象实现。
promise同时支持all,any等api。本文将会对wx.request进行封装,以获取异步调用的结果。
具体代码
utils/http-client.js
const baseURL = 'http://demo.api.xxx.com';
function request(params = { methods, url, data }) {
return new Promise(function (resolve,reject) {
wx.request({
url: baseURL + params.url,
method: params.method,
data: params.data ? JSON.stringify(params.data) : null,
header: {
'Content-Type': 'application/json',
'accessToken': ''
},
timeout: 5000,
success(res) { // 有响应
if (res.statusCode == 200) {
if (res.data.code == 0) {
resolve(res.data);
} else { // biz exception
reject(res,data);
}
} else { // http exception
reject();
}
},
fail (err) { // 无响应, io
reject(err)
}
})
})
}
module.exports = {
request: request
}