- 当前 Bug 的表现(可附上截图)
app.js中的onLaunch函数添加了全局变量:
var that = this;
var openid = res.result.openid;
that.globalData.openid = openid;
页面的onShow函数代码:
onShow: function() {
console.log('globalData',app.globalData)
console.log('openid',app.globalData.openid)
},
当前刷新页面,页面控制台显示如下:
目前这个返回结果,导致无法判断app.js是否已经加载完成
- 预期表现
如果是异步加载app.js,则在页面log中应该显示如下:
globalData undefined
openid undefined
- 复现路径
- 提供一个最简复现 Demo
app.js:
var that = this;
var openid = res.result.openid;
that.globalData.openid = openid;
页面的onShow函数
onShow: function() {
var openid = app.globalData.openid
console.log('globalData',app.globalData)
console.log('openid',app.globalData.openidopenid)
},
如果仅仅是openId的话,我们是这样写代码的:
https://developers.weixin.qq.com/community/develop/doc/0008089ec2c6200b81e76e6ac56804
不只是openid,还有很多参数,也是要全局化的
app.js和page.onShow哪个先执行,是不确定的,所以,你在onShow里想取值,不一定已经在app.js里生成了。
所以如果非要取的话,最好先判断一下是否为空。
我的例子里的思路是,app.js和onShow里都是去调同一个函数,后一个调用的,先判断,再分支执行。
方便加一下你的微信吗