onLaunch: function () {
wx.getSetting({
success: res => {
if (res.authSetting['scope.userInfo']) {
// 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
wx.getUserInfo({
success: res => {
// 可以将 res 发送给后台解码出 unionId
this.globalData.userInfo = res.userInfo
// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
// 所以此处加入 callback 以防止这种情况
if (this.userInfoReadyCallback) {
this.userInfoReadyCallback(res)
}
}
})
}
}
})
}
globalData: {
userInfo: null,
}
这里用
if (this.userInfoReadyCallback) {
this.userInfoReadyCallback(res)
}
处理了,在别的页面的onLoand用app.globalData.userInfo取到的还是null,用
console.log查看打印顺序仍然是先执行onLoand的,请问怎么解决。
微信小程序开发问题解答
微信小程序开发者回答:
生命周期函数只是触发,不会等待
微信小程序开发者回答: 刚才用app.golablData.usreInfo又能拿到了,前面一直不行,试着试着又突然可以了,而且只能在别的页面拿到,首页就拿不到,首页只能用app.userInfoReadyCallback = res => { console.log('查看得到的数据:', res) }拿到,而这个方法在别的页面又无效。我真是越来越搞不懂了
微信小程序开发者回答:
请注意处理异步的时序问题。如果不能解决,建议贴出较完整的代码。
本文网址:http://www.91bianli.com/weixinxiaochengxu/39022.html