收藏
回答

关于onload与onshow一些逻辑疑问

小程序onload 和 onshow是异步,但我每个页面都有获取用户的登录信息而调用接口进行操作,获取用户登录信息这步可能涉及到调用接口,如果我写在onload上,可能会导致onshow调用接口的方法还没来得及获取到用户信息就执行了,如果我把逻辑都写在onload上,后退到页面还要有部分数据要刷新状态,我又不想把逻辑全部写在onshow,这样每次后退都重新调取了数据,请问大家有什么好的见解呢

onLoad: function(options) {

    

    authorize.checkAuth(function() {

        //业务逻辑

        //请求一些一次性加载的接口        

    })

},

onShow:function(){

    //每次进来或者后退都要在确保有用户登录状态情况下请求状态数据

    this.getStatus()

}


最后一次编辑于  07-22  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

3 个回答

  • \
    \
    07-22

    该首次加载的写onLoad,需要即时刷新的在onShow里面加this.onLoad()

    07-22
    赞同
    回复
  • I will be the one (饶艺伟)
    I will be the one (饶艺伟)
    07-22

    登陆后把登陆状态放全局变量里,调用接口时候先判断全局有没有,有就可以直接获取状态了,没有再给提示让他登录。如果不想后退都再调所有接口,那就放onLoad里,再onshow时候再单独把做更改的那个属性做更改。

    07-22
    赞同
    回复 2
    • 小鹏君
      小鹏君
      07-22
      我现在是把登录状态放缓存里的,一个页面有只加载一次的接口,有每次显示都要加载的接口,所有接口都是要基于登录状态下的,但又不可能同时都放在登录回调里
      07-22
      回复
    • I will be the one (饶艺伟)
      I will be the one (饶艺伟)
      07-22回复小鹏君
      那登陆页面接口很多也没办法,只有放回调里了。
      07-22
      回复
  • 痛快科技
    痛快科技
    07-22

    写在onShow中,登陆后缓存登陆状态,下次执行onShow时,判断一下登陆状态

    07-22
    赞同
    回复 2
    • 小鹏君
      小鹏君
      07-22
      一些逻辑不想后退动作的时候重复执行多一次,这个要怎么避免
      07-22
      回复
    • lee
      lee
      07-22
      在缓存里面增加一个状态判断,如果之前执行过就不再重复执行,没执行再进行执行
      07-22
      回复