评论

js异步问题:如何获取openid?

因为异步问题,获取openid很容易undefined,本文是解决方案,仅供参考

很容易做错的事是:在app.onLaunch里调用this.getOpenid()

不要在app.onLaunch里调用,不要在app.onLaunch里调用。。。

app.js的代码:

App({
  onLaunch: async function () {
    //不要在这里调用this.getOpenid()
    // await this.getOpenid()//不要这里执行,这是错误的。因为首页里page.js是必然undefined的。
  },
  getOpenid: async function () {
    if (this.globalData.openid) return//已经获取过openid
    this.globalData.openid = await this.getOpenidSync()
  },
  getOpenidSync: async function () {
    //此处执行获取openid的代码
    //...
  },
})


在首页,或者分享页里的page.js代码:

  onLoad: async function (options) {
    await app.getOpenId()
    console.log(app.globalData.openid)
  }, 


其他页面,不是开机就进入的页面里:

console.log(app.globalData.openid)


最后一次编辑于  06-10  
点赞 0
收藏
评论
登录 后发表内容