这里用一个例子说明
实验目的:
1、app中获取用户信息
2、页面中显示
这演示的是已经授权,可以直接调用getUserInfo,这样简洁代码,突出重点
----------------------错误示范--------------------------
应用【app.js】
onLaunch: function () {
wx.getUserInfo({
success: res => {
//【1】获取用户信息保存
this.globalData.userInfo = res.userInfo;
}
})
}
页面【index.js】
onLoad: function () {
//【2】显示用户信息
this.setData({
userInfo: app.globalData.userInfo,
hasUserInfo: true
});
},
这的问题在第【2】步,获取不到信息,因为网络有延迟,【1】还没有执行,【2】就先执行了。
----------------------修改后--------------------------
应用【app.js】
onLaunch: function () {
wx.getUserInfo({
success: res => {
//【1】获取用户信息保存
this.globalData.userInfo = res.userInfo
//等待函数定义并执行
if (this.userInfoReadyCallback001) {
this.userInfoReadyCallback001(res);
}
}
})
}
页面【index.js】
onLoad: function () {
//【2】显示用户信息
//定义函数
app.userInfoReadyCallback001 = res => {
this.setData({
userInfo: res.userInfo,
hasUserInfo: true
});
}
}