//app.js
wx.getUserInfo({
success: res => {
console.log('getUserInfo success:', res);
this.globalData.userInfo = res.userInfo
//正常流程是 先getUserInfo 然后再执行index中的东西
// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
// 所以此处加入 callback 以防止这种情况
//这段的意思是是否存在userInfoReadyCallback这个方法,如果存在,就执行。
//1,不正常:如果在index.js执行完毕后 getUserInfo还没执行完,那么就执行index中定义的函数
//2,正常:如果getUserInfo正常返回了 数据 这段就不会执行
if (this.userInfoReadyCallback) {
this.userInfoReadyCallback(res)
}
}
})
//page.onLoad
//正常流程
if (app.globalData.userInfo){
this.setData({
userInfo: app.globalData.userInfo
})
}
// 给app.js 定义一个方法。
app.userInfoReadyCallback = res =>{
console.log('userInfoReadyCallback: ', res);
console.log('获取用户信息成功');
this.setData({
userInfo: res
})
};
//上面的箭头函数的写法相当于
app.userInfoReadyCallback(res){
this.setData({
userInfo: res.userInfo,
hasUserInfo: true
})
}