根据小程序初始demo分析小程序流程。
小程序执行流程:
首先执行onLaunch方法,再去执行onLoad方法。
但是 执行流程是异步的所以说可能先执行onLoad方法。
在我这里真实的执行流程。
首先执行onLoad方法,再去执行onLaunch方法。
onLoad:
初次登陆,app.globalData.userInfo = false
所以不执行
this.data.canIUse 这个一直为true
所以执行这个方法,但是这个里面啥也没有执行,只有一个回调函数,但是不触发回调函数。
onLaunch
因为getSetting里面的if行不同所以不执行。
res.authSetting['scope.userInfo']
带你记获取头像后。再去登陆。
app.globalData.userInfo = false
所以不执行
this.data.canIUse 这个一直为true
这个执行,
但是异步所以onLaunch这个执行了。
所以执行这个函数getSetting res.authSetting['scope.userInfo'] == true
所以执行 getUserInfo
之后执行回调函数,
app.userInfoReadyCallback = res => {
this.setData({
userInfo: res.userInfo,
hasUserInfo: true
})
}
设置变量值,重新渲染页面。
为啥不进入if呢 made 不知道啊,