小程序异步获取用户信息问题
官方文档里,小程序由于是异步获取userinfo,所以使用了
userInfoReadyCallback
但如果在index.js的
onLoad
方法里,就要通过userInfo获取其他信息的话,
app.userInfoReadyCallback callback方法还没有执行,就会使用到userInfo
而报错啊
//app.js
// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回// 所以此处加入 callback 以防止这种情况if (this.userInfoReadyCallback) {
this.userInfoReadyCallback(res)}
//index.js
onLoad: function () {
if (app.globalData.userInfo) {
this.setData({
userInfo: app.globalData.userInfo,
hasUserInfo: true
})
} else { // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
// 所以此处加入 callback 以防止这种情况
app.userInfoReadyCallback = res => { this.setData({
userInfo: res.userInfo,
hasUserInfo: true
})
}
}
},