有很多情况,要在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路径,在调用全局的回调,这里触发回调,页面拿到数据