How to implement Mini Program's request for other interfaces after a successful login request?

handleLogin.js

// 
function login(callback) {
      let promise = new Promise(function(resolve, reject) {
            wx.login({
                  success: function(res) {
                        if (res.code) {
                              const params = {
                                    appid: "wx66e4ec7b580c2658",
                                    grant_type: "authorization_code",
                                    js_code: res.code,
                                    secret: "8028563818513852479da62c3004afc2"
                              }
                              loginServer(params).then((res) => {
                                    console.log(res)
                                    wx.setStorageSync("access_token", res.data)
                                    console.log(res.data)
                                    wx.setStorageSync("login", 0)
                                    resolve(res)
                                    // wx.setStorageSync("access_token", "aaa")
                              })
                        } else {
                              showToast()
                        }
                  },
                  fail() {
                        showToast()
                  }
            });
            return promise
      });
}

function loginServer(params) {
      let promise = new Promise(function(resolve, reject) {
            wx.request({
                  url: `http://062c76de.ngrok.io/20180507/net-cosrun-project/web/v1/activity/login`,
                  data: params,
                  method: "POST",
                  success: function(res) {
                        resolve(res);

                  }
            })
      })
      return promise
}

function showToast(content = "") {
      wx.showToast({
            title: content,
            icon: "none"
      })
}

module.exports = {
      login: login,
}

the encapsulated request is like this

const handleLogin = require("./handleLogin.js");

handleLogin.login().then({
      request()
})

function request(url, params, method) {
      const appid = "miinno.com"
      const secret = "123456"
      const version = "api/v1"
      const timestamp = new Date().getTime()
      const a = appid + "APPID" + secret + "SECRET" + timestamp
      const sign = sha1(appid + "APPID" + secret + "SECRET" + timestamp)
      token = sign + "." + timestamp + "." + version
      // console.log(wx.getStorageSync("access_token"))
      let promise = new Promise(function(resolve, reject) {
         
                  wx.request({
                        url: url,
                        data: params,
                        header: {
                              "X-Token-With": token,
                              "Authorization": wx.getStorageSync("access_token")
                        },
                        method: method || "GET",
                        success: function (res) {
                              //     app.globalData.netWorkData = res.data
                              resolve(res);
                              if (res.data.hasOwnProperty("error")) {
                                    console.log(url)
                                    if (url != "http://f63aca00.ngrok.io/20180507/net-cosrun-project/web/v1/vote/vote") {
                                          wx.showModal({
                                                title: "",
                                                content: res.data.error.message,
                                                success: function (res) {
                                                      if (res.confirm) {

                                                      } else if (res.cancel) { }
                                                }
                                          })
                                    }
                              }
                        }
                  })
          
      });
      return promise
}

how to write to enable you to request other interfaces only after the login is completed

Apr.26,2021

look at you, you are using promise,. This is a chained call

.
handleLogin.login().then({
   return request()
}).then((res) => {
    console.log(res,'')
})
Menu