小程序异步方法执行慢的决绝方法
程序员文章站
2022-07-15 14:56:23
...
比如:在小程序app.js中写请求的方法请求来的参数,在页面里的onload方法中使用,当程序进程执行到了onload方法,而app.js中的请求还没有返回数据就会发生报错。
示例代码 示例我们用个人信息请求
这是app.js中的代码
onLaunch: function () {
// 获取用户信息
wx.getSetting({
success: res => {
if (res.authSetting['scope.userInfo']) {
wx.getUserInfo({
success: res => {
// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
// 所以此处加入 callback 以防止这种情况
if (this.userInfoReadyCallback) {
this.userInfoReadyCallback(res)
};
}
})
}
}
})
},
这是page中的代码
onLoad: function () {
if (app.globalData.userInfo) {
this.setData({
userInfo: app.globalData.userInfo,
});
} else if (this.data.canIUse) {
// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
// 所以此处加入 callback 以防止这种情况
app.userInfoReadyCallback = res => {
this.setData({
userInfo: res.userInfo,
})
}
}
},
这样就可以在userInfo数据返回后刷新页面了
下一篇: Java异步执行方法