账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    请教微信小程序维护登录态怎么使用Promise改写?
    • 2019-06-11 00:00
    • 10
    28
    0
    1. 业务需求是,维护登录态的代码写在app.js里的,获取到登录态后保存到globaldata里,子页面的请求接口都需要携带登录态,直接拿globaldata里的登录态就可以。
    2. 遇到的问题是,经常子页面比如index页面里的代码在app.js执行完毕前就执行,就拿不到globaldata里的登录态。
    3. 我的思路是能不能把app.js里维护登录态的代码用Promise改写一下,然后把Promise实例放到globaldata里,子页面比如index页面取globaldata的Promise实例等待状态变为resolve时就可以拿到登录态然后再请求接口了。

    下面是我回调函数方式维护登录态的大体流程:请教大佬怎么改写呢?

    wx.getStorage({ // Storage里取登录态
      key: 'loginState',
      success(res) { // 登录态存在
        wx.checkSession({
          success() {
            //session_key 未过期
          },
          fail() {
            // session_key 已经失效,需要重新执行登录流程
            wx.login({
              success(val){
                wx.request({
                  url: 'https://test.com/onLogin',
                  data: {
                    code: val.code
                  },
                  success(data){
                    this.globalData.uid = data.uid; // 将后端返回的登录态uid保存到globalData方便子页面使用
                  }
                })
              }
            }) //重新登录
          }
        })
      },
      fail() {
        wx.login() //登录态不存在,重新登录
      }
    })
    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部