使用原生微信小程序封装一个request的请求方法

var app = getApp();
const api = require("../config/config.js");
const request = (method, url, data) => {
  var that = this;
  console.log("----request---url---[[",url,"]]-----")
  var store_token = wx.getStorageSync('token');
  return new Promise((resolve, reject) => {
    //token不存在
    if (store_token == "" || store_token == null) {
      /** 
      wx.reLaunch({
        url: '/pages/login/login'
      })
      */
      wx.removeStorageSync("minappUser"); //用户信息
      app.globalData.userInfo = null;
      app.showInfo("请先完成登录!")
      return;
    }
    //判断token过期
    /** 
    if (token && newTime - time > 0) { 
      if(isRefreshing) {
        updateToken();
        isRefreshing = false;
        pendings.push(() => {
          resolve(ajax(method, url, data, options))
        })
      }
    }
    **/
    //请求后台数据
    wx.request({
      url: api.wxUrl_miniapp + url,
      data: data,
      method: method,
      dataType: "json",
      header: {
        'content-type': 'application/json',
        'Authorization': 'Bearer ' + store_token
      },
      success(res) {
        if (res.data.code == 401 || res.data.msg == "Error token") {
          //退出清除用户数据
          wx.removeStorageSync("token"); //"用户Token"
          app.globalData.token = "";
          wx.removeStorageSync("minappUser"); //用户信息
          app.globalData.userInfo = null;
          wx.reLaunch({
            url: '/pages/usercenter/user'
          })
          return;
        } else {
          console.log("---------promise.response--------[[[", res, "]]]------------------")
          return resolve(res);
        }
      },
      fail(res) {
        console.log("返回失败信息", res)
        //reject (res)
        app.showInfo("请求服务器失败,请稍后重试!")
        return;
      }
    })
  })
}

const requestNoToken = (method, url, data) => {
  var that = this;
  return new Promise((resolve, reject) => {
    //请求后台数据
    wx.request({
      url: url,
      data: data,
      method: method,
      dataType: "json",
      header: {
        'content-type': 'application/json'
      },
      success(res) {
        //console.log("---------promise.noTokenResponse----[[[", res, "]]]-----")
        return resolve(res);
      },
      fail(res) {
        console.log("返回失败信息", res)
        //reject (res)
        app.showInfo("请求服务器失败,请稍后重试!")
        return;
      }
    })
  })
}
module.exports = {
  request: request,
  requestNoToken: requestNoToken
}

你可能感兴趣的:(微信小程序,小程序)