微信小程序,头脑王者获取用户信息,从数据库中获取用户资料
微信小程序调用wx.login后能够得到客户的微信信息,这时我们可以利用openid来获取数据库中保存的用户信息,使用wx.request 接口来与后台通信,获取到客户的数据库信息。
代码如下:
getuserinfo: function () { //获取数据库中个人信息的方法
var that = this
//console.log(app.globalData.openid)
wx.request({
url: url + '/api.php', //仅为示例,并非真实的接口地址
data: {
userinfo: '1',
ooopenid: app.globalData.openid
},
success: function (res) {
console.log(res.data)
app.globalData.user = res.data
var c = Number(res.data.score) > 5 ? 5 : Number(res.data.score)
var array=new Array(c)
console.log(array)
that.setData({
gold:res.data.gold,
user: res.data, //用户信息
score: array, //将星转换为数组
//推送是否
})
app.globalData.score=res.data.gold
}
})
},
使用此方法,有一个问题,我们的参数是 app.globalData.openid ,然而微信小程序在登入的时候,globaldata并不是瞬间获取,他也是需要与后台利用code才能兑换出来,这里如果网速有问题,多半会获取不到客户的openid,需要有一个时间差。解决这样的问题有两种思路,第一种是异步,第二种是延时。
我采用的是延时,利用setimeout来获取,利用settimeout时,我们并不能确定到底多久globaldata.openid才不是空,所以我们利用判断的方法,持续循环。
Countdown()
function Countdown() {
setTimeout(function () {
if (app.globalData.openid == '' | app.globalData.openid == null) {
Countdown()
}
else {
that.getuserinfo()
}
}, 500)
}