• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

微信小程序的onload页面加载先于onLaunch加载,导致登录获取数据有问题 ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

参考:https://blog.csdn.net/txqd1989/article/details/79096415

 

本文采用第二种方法,使用异步Promise来解决页面加载完成后却拿不到storage中的内容,页面加载在登录前

 

本文讲的是登录获取不到数据的问题及登录步骤

 

1.在app.js创建方法

  getLogin() {
    // 查看是否有登录isLogin字段
    const isLogin = wx.getStorageSync('isLogin')
      
    
    // 如果本地没有存储,表示没有登录,没有登录就要请求,否则不请求
    if(!isLogin ) {
      // 登录
      return new Promise(function (resolve, reject) {
        wx.login({
          success: res => {
            console.log(res.code, '返回')
            uriFun.loginFun(res,resolve) // 这个是我封装的登录
            // 发送 res.code 到后台换取 openId, sessionKey, unionId
          }
        })
      })
    } else {
     return new Promise(function (resolve, reject) {
      resolve()
      })
    }
  },

 

我封装的登录

 // 登录
  function loginFun(res,resovle) {
   

    request.getData("user/loginByCode?code=" + res.code, 
        backres => {
          console.log(backres, '获取到了吗')
          if(backres.status == "success") {

            wx.setStorage({
              key: 'loginToken',
              data: backres.data.token
            });
            wx.setStorage({
              data: backres.data,
              key: 'userinfo',
            });
            wx.setStorage({
              data: 'true',
              key: 'isLogin',
            })
            resovle() // 这里调用,表示登陆成功后再执行回调内容,即首页index。js中的函数
          }
        },
        fail => {
          console.log(fail, '失败了吗')
        }
      )
  
  
  }

 

 

2.将以上登录的方法在onLaunch中调用

 onLaunch() {
    this.getLogin()
  },

 

3.在首页的index.js中

  onLoad() {

   var that = this
    getApp().getLogin().then(()=>{ // 意思是先登录后再加载,即onLaunch 先于onload加载
      getAddress.getAddress(that);
    })
  },

 

说明:第3步中的then里面的回调函数是Promise中 的resolve,

resolve() 表示调用then里面的回调函数

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
微软 Power Apps 让人人都能开发小程序发布时间:2022-07-18
下一篇:
微信小程序用canvas生成分享朋友圈的海报发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap