【小程序】小程序,app.js页面onShow如何获取onLaunch里request异步得到的数据?
如题
我先在app.js wx.login
里面跟后台交互了一下 把openid传过来,然后放到globalData里面
onLaunch: function () {wx.login({
success: res => {
wx.request({
....省略
success: res =>{
if (res.statusCode == 200){
this.globalData.openid = res.data.openid; //我在这里赋值
}
}
})
}
})
},
onShow:function(){
console.log('onshow---',this.globalData.openid); //但这里打印值是空的
},
globalData: {
userInfo: null,
openid:''
},
但是在onShow
周期里获取不到this.globalData.openid的值,请问如何操作?
回答
在自定义方法里面写个app.callback = fun , success if(this.callback)this.callback()啊
onLaunch: function () { wx.login({
success: res => {
wx.request({
....省略
success: res =>{
if (res.statusCode == 200){
this.globalData.openid = res.data.openid; //我在这里赋值
if(this.asd){
this.asd();
}
}
}
})
}
})
},
onShow:function(){
this.asd = res => {
console.log(this.globalData.openid)
}
},
globalData: {
userInfo: null,
openid:''
},
你应该在 request 返回值后进行 回调。
异步方法请用回调。
看你更新重新给你回答一下,你这个人怎么这么轴,哈哈;
看截图吧。你忽略其它东西。看和你写法差不多的敌方;
都说你的异步方法 不会阻塞onShow 的运行。
官方说了,要用this.setData()
注意this
先这样 const _this = this
success: res =>{ if (res.statusCode == 200){
_this.globalData.openid = res.data.openid; //this在这里绑定的不是app
if(this.asd){
this.asd();
}
}
}
以上是 【小程序】小程序,app.js页面onShow如何获取onLaunch里request异步得到的数据? 的全部内容, 来源链接: utcz.com/a/83872.html