【小程序】小程序,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 返回值后进行 回调。

异步方法请用回调。


看你更新重新给你回答一下,你这个人怎么这么轴,哈哈;

【小程序】小程序,app.js页面onShow如何获取onLaunch里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

回到顶部