app.js获取openid到globalData下,方便其他js页面直接使用
发布于 6 年前 作者 bzhang 14022 次浏览 来自 问答

我想要在app.js页面直接获取用户的open_id,这样就不用每个页面获取一次。问题是一直不能存进去。萌新,同学说是异步问题 我试了好多遍也没得存进去。

结果是没变。。

7 回复

app.js里面怎么可能直接调微信获取openid接口?这个接口应该通过后台调吧,或者走云开发

不是它的异步难懂,app.js这个文件很多时候就是个弟弟。

最好不要放在global里,这样每次onLaunch都要后台(或者云函数)取一次openid,openid这个值最好放在storage里,因为openid是永久不变的,取一次就行了。

我的代码是这样的:

this.openid = wx.getStorageSync(‘openid’) || await app.getOpenid()

app.js里是这样的:

getOpenid: async function(){

    let res = await wx.cloud.callFunction({ name: ‘login’ })

    wx.setStorageSync(‘openid’, res.result.openid)

    return res.result.openid

},

下面执行的比上面早鸭,,

异步的问题。。你在其他页面引用的时候打印应该就好了。。。。

老铁你的小程序是从哪个开源项目开发的呐

onLaunch里的log打印早了,应该放到then回调里面。

回到顶部