1. 程式人生 > >微信小程式的request的封裝

微信小程式的request的封裝

研究了各種大聲寫的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(){} 來判斷該儲存是否存在都是可以執行後續操作的