霍霍
霍霍
  • 发布:2022-01-12 10:39
  • 更新:2022-01-12 14:47
  • 阅读:486

请问我全局混入的onShow里有一个异步ajax请求,我想这个异步执行结束后再走页面的onShow,有办法吗?

分类:uni-app

如题,请不要问为什么要这样做这种无意义的问题,只说可以不可以,非常感谢认真帮助的各位大神

2022-01-12 10:39 负责人:无 分享
已邀请:
gadfly3173

gadfly3173

生命周期钩子是异步的,不能阻塞渲染进程。想要这种操作可以考虑全局状态、加锁、中转页面之类的

  • 霍霍 (作者)

    谢谢,如果用全局状态可能改动比较大,我现在是已经成熟的产品,获取后台数据都是在onshow里边,现在需要增加静默登录,因为增加了离线模式,离线时间可能比较久,再切在线可能登录就过期了,所以想在混入的onshow里边验证是否登录过期,如果登录过期就自动重新登录,但因为是异步所以还没有执行完登录页面的请求就发送了,请问有什么好的解决办法吗

    2022-01-12 17:29

  • gadfly3173

    回复 霍霍: 抽一个统一的登录api,在每个页面里加一下咯。。

    2022-01-12 17:38

  • 霍霍 (作者)

    回复 gadfly3173: 一开始主要就不想在每个页面加代码,实在没办法只能这样了

    2022-01-12 17:53

  • gadfly3173

    回复 霍霍: 看了下uniapp也可以上路由守卫,你可以试试

    2022-01-12 18:00

  • 霍霍 (作者)

    回复 gadfly3173: 谢谢,不过路由卫士容易出现请求多次token的情况,楼下介绍的页面自定义钩子可以解决这种问题

    2022-01-18 15:29

鹅鹅鹅鹅

鹅鹅鹅鹅

思路不对,换个思路吧

  • 霍霍 (作者)

    谢谢,我现在是已经成熟的产品,获取后台数据都是在onshow里边,现在需要增加静默登录,因为增加了离线模式,离线时间可能比较久,再切在线可能登录就过期了,所以想在混入的onshow里边验证是否登录过期,如果登录过期就自动重新登录,但因为是异步所以还没有执行完登录页面的请求就发送了,请问有什么好的解决办法吗

    2022-01-12 17:30

  • 鹅鹅鹅鹅

    回复 霍霍: 有个思路,在app.vue的onHide的时候把登录状态清掉,下次进入再次获取登录态,用是否有登录态来判定要不要执行页面内的钩子,结合这个插件,可以注册一个Login钩子,在页面内用onShowLogin,https://developers.weixin.qq.com/community/develop/article/doc/00002ac57208f0e7335d111f156013

    2022-01-12 17:54

  • 霍霍 (作者)

    回复 鹅鹅鹅鹅: 这个自定义钩子确实不错,谢谢!

    2022-01-18 15:24

  • 鹅鹅鹅鹅

    回复 霍霍: 是吧,哈哈,很好用,点个star呀

    2022-01-18 20:00

  • 霍霍 (作者)

    回复 鹅鹅鹅鹅: 恩恩

    2022-01-19 13:48

该问题目前已经被锁定, 无法添加新回复