微信小程序 wx.reqest 封装

export const request=(params)=>{
  const baseUrl = "https://localhost:44369"
  var header = {
    'content-type': 'application/x-www-form-urlencoded; charset=UTF-8', 
    'cookie': wx.getStorageSync('cookie')
  };


  return new Promise((resolve,reject)=>{
    var app = getApp();
    app.toastTotal++;
    wx.showToast({
      title: 'loading',
      icon: 'loading'
    });
    wx.request({
      ...params,
      url: baseUrl+params.url,
      method: "POST",
      header: header,
      success:(result)=>{
        console.log("request success,url:"+baseUrl+params.url);
        console.log(header);
        console.log(result);

        var error = result.data.error;
        if(error!=null &&  error.length>0)
        {
          console.error(error);
        }
        else{
          var code = result.data.Code;
          var msg = result.data.Msg;

          //#TODO 判断未登录错误码,提示然后跳转到登录
          if(code!=0) {
            wx.showToast({
              title: msg,
              icon: 'error',
              duration: 3000
            })
            wx.redirectTo({
              url: "/pages/login/login"
            })
          }
          else{
            var cookie = wx.getStorageSync('cookie');
            if(cookie == null || cookie == "")
            {
              console.log("写入 cookie:"+ result.header["Set-Cookie"])
              wx.setStorage({
                key:"cookie",
                data: result.header["Set-Cookie"]
              });
            }
            resolve(result.data)
          }
        }
      },
      fail:(err)=>{
        console.log("request fail,url:"+baseUrl+params.url);
        wx.showToast({
          title: '接口调用失败',
          icon: 'error',
          duration: 3000
        });
        reject(err)
      },
      complete:function(e){
        app.toastTotal--;
        if(app.toastTotal<=0)
        {
          app.toastTotal=0;
          wx.hideToast();
        }
      }
    })
  })
}

啥也不说,先上代码。

主要是针对微信网络请求 wx.request 的一些封装。

success 里面处理逻辑如下:

1.判断请求是否异常(服务端返回的异常json 信息),有的话提示然后终止

2.判断是否登录,没有登录则跳转到登录页

3.判断业务逻辑码,业务逻辑吗正常,则执行,否则则提示、终止;

原文地址:https://www.cnblogs.com/hujunmin/p/15752668.html