微信小程序onLaunch异步,首页onLoad先执行?
本来按照事件顺序,小程序初始化时触发App里的onLaunch,后面再执行页面Page里的onLoad,但是在onLaunch里请求获取是否有权限,等待返回值的时候Page里的onLoad事件就已经执行了。控制台打印的结果是。是无法判断success和page onload哪个先来的,会导致页面初始化数据失败的情况。就是在request success中处理,使用getCurrentPages方法获取是否页面先于success生成,如果生成我们就强制让页面再次渲染。这显然是一种hack的方式, 在实际使用过程当中,如果登录逻辑比较复杂,这个方法不是十分便利,page onload在一些特殊情况也会被调用,这显然不是我们想看到的目前我在开发中使用的是这种方案,在login的逻辑里,增加一个回调函数cbLoginCallBack。因为回调函数是在Page里面定义的所以方法作用域this是指向Page页面。
用户评论