应用【app.js】
onLaunch: function () {
wx.getUserInfo({
success: res => {
//【1】获取用户信息保存
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);
}
}
})
}
页面【index.js】
nLoad: function () {
//【2】显示用户信息
// 给app.js 定义一个方法
// 写法一
app.userInfoReadyCallback = res => {
this.setData({
userInfo: res.userInfo,
hasUserInfo: true
});
}
// 写法二
//上面的箭头函数的写法相当于
app.userInfoReadyCallback(res){
this.setData({
userInfo: res.userInfo,
hasUserInfo: true
})
}
}