有很多情况,要在onLaunch中进行网络请求
onLaunch是异步的,导致很多页面已经执行了onshow方法,拿不到全局变量
这里用回调解决
- 要回调的页面
//已经登陆
if(wx.getStorageSync('sessionId')){
this.getQuest(questionnaireId)
}else{
//网络原因,还没有拿到登陆数据,这里调用全局的callback
getApp().callBack = () =>{
this.getQuest(questionnaireId)
}
}
- app.js
if (getApp().callBack){
getApp().callBack(res);
}
解释如下
执行app.js时
如果if (getApp().callBack)触发,证明已经有页面走到了app.js的前面,也就是第一个代码块已经走了else路径,在调用全局的回调,这里触发回调,页面拿到数据

本文讲述了如何在微信小程序中处理onLaunch生命周期的异步网络请求,通过回调机制确保在用户已登录时获取quest数据,否则在后续页面调用全局回调来获取数据。关键在于理解异步流程并使用适当回调管理登录状态。
3016

被折叠的 条评论
为什么被折叠?



