之所以想到对钉钉小程序的请求进行再封装,是因为在实际开发过程中遇到了需等待请求完成后再处理相关数据的问题,但在请求的success方法中处理,代码实在不太美观。
封装后的请求方法代码如下:
httpReq(msg, url, method, data) { // 再次封装请求
return new Promise(function(resolve, reject) {
dd.showLoading({
content: msg
});
dd.httpRequest({
url: url,
method: method,
data: data,
success: (res) => {
dd.hideLoading();
if (res.status == 200) {
resolve(res);
} else {
reject(res);
}
},
fail: () => {
reject();
}
});
});
}
四个参数:
- msg 请求时弹出的提示信息
- url 请求路径
- method 请求方法
- data 请求数据(在外部封装好后传入)
示例:请求完成后处理相关数据
在全局js(app.js)中定义再封装的请求方法,在页面中调用如下:
const app = getApp(); //页面js的 Page方法外定义
...
let data = {username:'tom',password:'jerry'};
app.httpReq('登录中...','SERVER_URL/login','post',data).then(
function(){alert('成功!')},
function(){alert('失败');
});
有关更多Promise的用法,可以点这里!