微信小程序 解决 wx.request同步问题 方便开发 Promise方式

统一提示信息

 /**
   * 统一提示信息
   * @author langjf
   */
  paiAlert: function (title, confirmToUrl, cancelToUrl){
    wx.showModal({
      title: '温馨提示',
      content: title,
      success(res) {
        if (res.confirm) {
          console.log('用户点击确定')
          wx.navigateTo({
            url: confirmToUrl
          })
        } else if (res.cancel) {
          // console.log('用户点击取消'); 
          wx.navigateTo({
            url: cancelToUrl
          })
        }
      }
    })
  },

  

请求逻辑处理

/**
   * 请求逻辑处理
   * @author langjf
   */
  myfund:function(){
    var that = this;
    //检查登陆
    var data={};
    that.paiRequest('/aa/aa/aa.do', data).then(function (res) {
      console.log("ajax"+res);
      if (res.success == true) {
        data["buyerId"] = res.obj.userid;
        that.paiRequest('/aa/aa/aa.do', data).then(function (res) {
          if (res.status == "1") {
            that.paiRequest('/aa/aa/aa.do', data).then(function (res) {
            if (res.success = true) {
              that.setData({
                webankurl: res.content
              })
            } else {
              that.paiAlert(res.message, "/pages/my/my", "/pages/my/my");
            }
            });
          } else {
            that.paiAlert("您还未开通微众,去pc端开通微众", "/pages/my/my", "/pages/my/my");
          }
      });
      }else{
        that.paiAlert("未登录,是否马上去登录?", "/pages/login/login", "/pages/my/my");
      }
    });
  },

  

统一封装wx.request   调用微信已集成 Promise 方法

 /**
   * 统一封装wx.request   调用微信已集成 Promise 方法
   * @author langjf
   */
  paiRequest:function(requrl,data){
    return new Promise(function (resolve, reject) {
    var resstr="";
      wx.showLoading({
        "mask": true
      });
      data["token"] = wx.getStorageSync('token');
    wx.request({
      url: app.globalData.baseurl + requrl,
      data: data,
      async: false,
      method: 'POST', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
      header: {
        'content-type': 'application/x-www-form-urlencoded' // 默认值
      },
      success: function (res) {
        resolve(res.data);
        wx.hideLoading();
      },
    })
    })
  },

  原文地址:https://developer.aliyun.com/article/786634

posted @ 2022-11-06 16:46  一万年以前  阅读(1193)  评论(0编辑  收藏  举报