小程序 onlaunch 登录账号信息 onload执行时未获取
时间: 2023-12-28 22:06:26 浏览: 33
如果您在小程序的onLaunch生命周期函数中登录账号并获取用户信息,但在onLoad生命周期函数中却无法获取到用户信息,可能是因为onLoad生命周期函数的执行时间比onLaunch生命周期函数晚,导致onLoad无法获取到用户信息。
为了解决这个问题,可以在onLaunch生命周期函数中使用Promise来实现异步请求获取用户信息,并在onLoad生命周期函数中使用Promise的then()方法来处理异步请求的结果。具体实现方法如下:
```
App({
onLaunch: function () {
// 使用Promise进行异步请求获取用户信息
return new Promise((resolve, reject) => {
wx.login({
success: res => {
wx.getUserInfo({
success: userRes => {
// 将获取到的用户信息存储到全局变量中
this.globalData.userInfo = userRes.userInfo
resolve()
},
fail: res => {
reject(res)
}
})
},
fail: res => {
reject(res)
}
})
})
},
globalData: {
userInfo: null
}
})
Page({
onLoad: function () {
// 使用Promise的then()方法处理异步请求的结果
getApp().onLaunch().then(() => {
// 从全局变量中获取用户信息并进行相应的操作
var userInfo = getApp().globalData.userInfo
// 进行相应的操作
}).catch(err => {
console.log(err)
})
}
})
```
在onLaunch生命周期函数中使用Promise进行异步请求获取用户信息,并将获取到的用户信息存储到全局变量中。在onLoad生命周期函数中使用Promise的then()方法处理异步请求的结果,从全局变量中获取用户信息并进行相应的操作。
这样就可以解决在onLaunch中登录账号并获取用户信息,在onLoad中却无法获取到用户信息的问题。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)