微信小程序的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(){} 来判断该存储是否存在都是可以执行后续操作的

猜你喜欢

转载自blog.csdn.net/weixin_38996069/article/details/82750462