我在app.js中获取了用户的openid,并存储在缓存中,在index页面的onload中,需要用openid作为请求参数发起一个服务器请求,但app.js的数据处理好像是异步的,所以初次打开小程序时,app.js中的参数取不到,导致请求出错,代码如下:app.js
wx.login({
success: res => {
//console.log(res);
if(res.code) {
//发起网络请求
wx.request({
url:'https://wxapp.jianjiaoapp.com/redpack.aspx?action=sessionkey.get',
data: {
js_code: res.code
},
header: {
'content-type':'application/json'
},
success:function(res) {
vardata=res.data;
console.log('aa', data.data.openid)
wx.setStorageSync('openid', data.data.openid)
wx.setStorageSync('unionid', data.data.unionid)
}
})
}else{
console.log('获取用户登录态失败!'+ res.errMsg)
}
// 发送 res.code 到后台换取 openId, sessionKey, unionId
}
})
index.js
varopenid = wx.getStorageSync('openid');
console.log('jj',openid)
//var redpackid = '52CB5216-F881-4112-BC33-D62733D619C9';
varredpackid = options.redpackid;
this.setData({
redpackid: redpackid,
})
console.log('sss',redpackid);
varthat =this;
wx.request({
url:'https://wxapp.jianjiaoapp.com/redpack.aspx?action=redpack.get',
data: {
open_id: openid,
redpack_id: redpackid,
},
header: {
'content-type':'application/json'
},
success:function(ret) {
………………
相似问题