目前我将登录操作写在了app.js中,获取到微信的code后,向自己的服务器获取验证access-token.代码如下app.jsonLaunch:function(){wx.login({success:res=>{//发送res.code到后台换取openId,sessionKey,unionIdconfig.code=res.code;this.initUserInfo();}})},//初始化用户信息initUserInfo:function(){wx.request({url:config.baseUrl+"/index.php?m=Api&c=User&a=initUserInfo",method:'POST',header:{"Content-Type":"application/x-www-form-urlencoded"},data:{source_type:'wxapp',code:config.code,},success:function(res){if(res.data.status==true){config.uid=res.data.data.uid;config.accessToken=res.data.data.wxapp_access_token;}elseif(res.data.status==false){console.log(res.data.data);}else{}}})},在另一个文件met.js中需要通过获取的uidaccessToken来请求获取数据.代码如下met.jseggGetRemoteWords:function(){varself=this;wx.request({url:app.config.baseUrl+"/index.php?m=Api&c=Learning&a=getLearningWord",method:'POST',header:{"Content-Type":"application/x-www-form-urlencoded"},data:{uid:app.config.uid,access_token:app.config.accessToken},success:function(res){if(res.data.status==true){self.setData({'word.wordArray':res.data.data,})vartotal=self.data.word.wordArray.length;self.setData({"word.wordInfo.total":total});}elseif(res.data.status==false){}else{}}})},但是目前总是met.js中的函数eggGetRemoteWords总早于app.js中initUserInfo登录函数执行,导致无法获取到数据因为js异步的原因.请问大家这应该怎么处理呢?我了解到promise请问如果目前的需求将如何实现呢?
相关分类