微信小程式的request的封裝
阿新 • • 發佈:2018-12-22
研究了各種大聲寫的request分裝,沒有一種是我滿意的,最後覺得還是使用原生的Promise比較給力,結合專案需求,自己分裝了一套,
在全域性變數中定義全域性方法,小程式的promise封裝 post請求
post: function(url,data){ var promise = new Promise((resolve,reject) =>{ var that = this; var postData = data; wx.request({ url:url, data:postData, method:'POST', header:{'content-type':'application/x-www-form-urlencoded'}, success:function(res){ if (res.data.status == 1) { resolve(res.data.data); } else { reject(res.data.info); } }, error: function(e){ reject('網路出錯'); } }) }); return promise; }
頁面呼叫時,
const app = getApp();
app.post('https:www.ypty.com/',data)
.then((res) => {
console.log(res);
})
.catch((errMsg)=>{
console.log(errMsg);
wx.hideLoading();
});
小程式一些很有用的技能:
wx.getStorage({ key: 'token', success: function (res) { api.post({ url: 'program/select/login', data: { token: res.data }, success: data => { if (data.code == 200){ wx.switchTab({ url: '../index/index, }) wx.showToast({ title: '登陸成功', icon: 'loading', duration: 1000 }) } }, }); } })
儲存時,可以使用同步儲存,wx.setStorageSync(key, data),但是我們獲取時,往往是為了下一步的操作,所以,使用非同步wx.getStorage,這樣子不用使用if(){} 來判斷該儲存是否存在都是可以執行後續操作的