自从用了新版授权api后,一直有个问题困扰我
我的用法是:小程序端获得code 去后台拿到openid,查库,如果openid已经存在直接登录,并把userInfo存入globalData,如果库中没有openid,则注册,然后返回userInfo存入globalData。
在判断是否登录过的时候,直接检查globalData中是否有userInfo,如果有的话就表示登录,没有就跳转登录页面。
但是问题来了, 在page.js中检查globalData会出现异步的问题,经常拿不到userInfo,于是在page.js 我用callback去拿userInfo,但是还是有问题,callback也是异步,导致我的判断已经完成了 callback才返回数据。于是我的解决办法是 setTimeOut,估算着1000ms后再做判断,但是这样感觉体验不佳,并且如果网络延迟的话 还是导致callback的数据超时才返回。
请问下这种问题现在主流的解决方案是什么,请详细一点,十分感谢。
还是异步问题,看下这个库https://developers.weixin.qq.com/community/develop/article/doc/00002ac57208f0e7335d111f156013
如果是异步请求,要等待数据返回,可以用async await让它同步化
//封装请求
myreq(){
return new Promise((rev,rej)=>{
wx.request({
....
success(res)=>{
rev(res)
}
})
})
}
//使用
async onload(){
let res=await myReq() //这里就能获得上面响应的res
}