app.js获取openid到globalData下,方便其他js页面直接使用

发布于 8 年前作者 bzhang14208 次浏览最后编辑 8 年前来自 ask

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

结果是没变。。

7 回复
limin
limin1 楼6 年前

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

ewan
ewan2 楼6 年前

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

jie55
jie553 楼6 年前

最好不要放在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

},

tianqiang
tianqiang4 楼6 年前

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

gyao
gyao5 楼6 年前

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

mhu
mhu6 楼6 年前

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

min23
min237 楼6 年前

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