關於微信小程序的request請求,想必文檔介紹的很清楚。我們如果不加封裝,直接使用,代碼未免太累贅,於是我們寫了以下的封裝
我們在全局app.js寫了如下方法
可是當我們調用的時候,可能就會發現,我們的http請求還沒結束,請求結果還沒拿到,此方法已經執行完返回了,這是什么原因呢?因為我們這樣采用的是異步的請求方式,解決方法如下
我們使用了Promise來解決異步的問題,通過resolve和reject進行返回,其中
header{},是我們設置的請求頭,請求方式可以封裝GET,POST,PUT,DELETE等(注:小程序需要大寫)
調用方式如下
其中app為頂部聲明的 var app=GetApp();// app表示全局app.js
封裝
代碼如下:
// 發送POST請求 mzh 2018/6/4 add
postData: function (url, data) {
var that = this;
return new Promise(function (resolve, reject) {
wx.request({
url: that.globalData.baseURL + url,
data: data,
method: "GET",
header: {
"Content-Type": "application/json;charset=UTF-8",
"token": that.globalData.token
},
success: function (res) {
resolve(res.data);
},
fail: function (res) {
reject(res);
},
})
});
},