刚入公司不久,看到大佬封装了要给get请求,里面代码设计到了:
success && success(res.data)。这句话的意思,需要调用的代码中,如果存在success,那就执行组件的success方法,这里的success跟全局封装中,wx.request的success的方法并不是同一个。
刚入门,初步见解,有错误,还请大佬指教。
具体代码是这样写的:
在全局js中封装了get请求:
/**
* get请求
*/
_get: function (url, data, success, fail, complete, check_login) {
wx.showNavigationBarLoading();//导航栏顶部加载
let App = this;
// 构造请求参数
data = data || {};
data.cid = App.data.cid;
data.eid = App.data.eid;
data.mwid = App.data.mwid;
data.type = App.data.types;
data.openid = App.data.openid;
data.version = App.data.version;
console.log(data);
// 构造get请求
let request = function () {
wx.request({
url: App.api_root + url,
header: {
'content-type': 'application/json'
},
data: data,
success: function (res) {
console.log(res);
if (res.statusCode !== 200 || typeof res.data !== 'object') {
App.showError('网络请求出错');
return false;
}
if (res.data.code === -1) {
// 登录态失效, 重新登录
wx.hideNavigationBarLoading();//关闭导航栏加载
//App.doLogin();
} else if (res.data.code === 0) {
App.showError(res.data.msg);
return false;
} else {
success && success(res.data);
}
},
fail: function (res) {
App.showError(res.errMsg, function () {
fail && fail(res);
});
},
complete: function (res) {
wx.hideNavigationBarLoading();
complete && complete(res);
},
});
};
// 判断是否需要验证登录
check_login ? App.doLogin(request) : request();
},
组件代码调用get请求:
app._get('videos/get_lists', {
page: _this.data.page,
title: _this.data.title,
is_type: _this.data.type,
}, function (result) {
var page = _this.data.page + 1;
var videoList = _this.data.videoList;
var data = result.data;
for (var i in data) {
videoList.push(data[i]);
}
_this.setData({
videoList: videoList,
page: page,
stat: 0
});
// console.log(_this.data.videoList)
});