在小程序開發(fā)中,通過接口獲取后臺(tái)數(shù)據(jù),這時(shí)候我們不得不在每個(gè)頁(yè)面的js文件中寫到:wx.request({
url:'',.....}) 但是調(diào)用很多接口的時(shí)候,會(huì)非常頻繁的使用request,作為一名php開發(fā)人員,顯然我們需要對(duì)他進(jìn)行一下封裝:
1.在utils同級(jí)目錄下建立service
2.typeof cb == "function" && cb(res.data) 我的理解是
利用的&&的運(yùn)算規(guī)律,首先判斷cb是不是一個(gè)方法, 這里的==可以作為類型是否相當(dāng)?shù)呐袛啵缓笤?amp;&中如果前面的不滿足,
后面的則不會(huì)執(zhí)行;如果是cb是一個(gè)方法,調(diào)用cb方法,并且傳入success成功回調(diào)的userinfo參數(shù)
并且return 的是回調(diào)函數(shù),而不是具體的數(shù)據(jù)
var rootDocment = 'https://xxxxxxxxxxxxx/';
var header = {
'Accept': 'application/json',
'content-type': 'application/json',
'Authorization': null,
}
function getReq(url, cb) {
wx.showLoading({
title: '加載中',
})
console.log("header=="),
console.log(header)
wx.request({
url: rootDocment + url,
method: 'get',
header: header,
success: function (res) {
wx.hideLoading();
return typeof cb == "function" && cb(res.data)
},
fail: function () {
wx.hideLoading();
wx.showModal({
title: '網(wǎng)絡(luò)錯(cuò)誤',
content: '網(wǎng)絡(luò)出錯(cuò),請(qǐng)刷新重試',
showCancel: false
})
return typeof cb == "function" && cb(false)
}
})
}
function postReq(url, data, cb) {
wx.showLoading({
title: '加載中',
})
console.log("header=="),
console.log(header),
wx.request({
url: rootDocment + url,
header: header,
data: data,
method: 'post',
success: function (res) {
wx.hideLoading();
return typeof cb == "function" && cb(res.data)
},
fail: function () {
wx.hideLoading();
wx.showModal({
title: '網(wǎng)絡(luò)錯(cuò)誤',
content: '網(wǎng)絡(luò)出錯(cuò),請(qǐng)刷新重試',
showCancel: false
})
return typeof cb == "function" && cb(false)
}
})
}
module.exports = {
getReq: getReq,
postReq: postReq,
header: header,
}
header 中的一些數(shù)據(jù)可能是需要在app.js中登錄后返回的Token,這時(shí)候我們需要在app.js中
var http = require('service/http.js')
http.header.Authorization = 'Bearer '+res.data;//給header 賦值
// 將方法暴露出去
getReq: http.getReq,
postReq: http.postReq,
使用:
http.getReq("item/getshopbanner/"+getApp().globalData.shopIdx,function(res){
console.log("banner==")
console.log(res)
})