为了账号安全,请及时绑定邮箱和手机立即绑定

小程序wx.request 数据异步获取疑问

小程序wx.request 数据异步获取疑问

幕布斯7119047 2019-03-21 18:15:15
微信小程序的wx.request是异步请求,在app.js onLaunch里进行后台交互获取openidAPP({    onLaunch:function(){        //登录        wx.login({            success:res => {                var code = res.code                if(code){                    wx.request({                        url:xxx,                        method:xxx,                        success: res =>{                            var that = this;                            console.log('app.js---onLaunch')                            that.globalData.openid = res.data.openid                        }                        })                }            }        })    }})在index.js中 onReady阶段想获取openidconst app = getApp()...省略...onReady:function(){    console.log("index.js--onReady")    console.log(app.globalData.openid)}结果如下图我的目的是想在index.js页面获取openid然后进行this.setData({})赋值操作,但由于异步的关系,这时候还没有值。我尝试了几种异步方式,promise和 cb的方法,刚接触javascript不久,思路还不是很清晰,有异步回调大神指点一二吗?
查看完整描述

4 回答

?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

建议把获取openid的方法封装成一个函数,在这个函数里,判断storage里面是否有openid,有的话直接去storage里面的openid,没有的话,发起请求,获得openid,并且存储到storage里面。目前来来说小程序多页面通信貌似没有很靠谱的方法


查看完整回答
反对 回复 2019-04-05
?
萧十郎

TA贡献1815条经验 获得超13个赞

楼上说的方法挺好,不过没必要存在storage里,就放globaldata里就行,判断没有就发起请求获取,取得以后执行一个回调函数传进来,我建议这个方法放在util.js里


查看完整回答
反对 回复 2019-04-05
  • 4 回答
  • 0 关注
  • 1038 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信