关于wx.login()执行比较慢怎么办
- 需求的场景描述(希望解决的问题)
通过点击别人分享的小程序页面,进入到页面的时候,根据需求需要通过缓存获取用户sk(sk是app.js里调用登录,用户授权后,请求后台返回的数据,我把它用wx.setStorage缓存起来),但是wx.login授权之后才能缓存sk,导致函数执行的时候获取不到缓存的sk
- 希望提供的能力
3 回复
写个延时递归。类似这样
var testI = 0; loginConfirmFunc(); function loginConfirmFunc () { if (testI > 9) { wx.showToast({ title: '请求超时' , icon: 'loading' , }) testI = null ; } else { var loginState = app.globalData.loginState; //这里自己实现下,应该是获取缓存的比较懒就酱。。 if (loginState == true ) { //在这写你要执行的方法... testI = null ; } else { console.log( '递归执行' ); //延时递归 setTimeout( function () { testI++; loginConfirmFunc(); }, 333) } } } |
我目前基本都这么写,其实可以用es6的promise,但是我一直引用失败所以放弃了QAQ,溜了溜了,老板要来打人了