收藏
回答

为什么我在其他页面通过globalData方式,获得的openid为undefined ?

如下图,例如在user.js页面

我通过app.globalData来获得全局变量,其中有text和open

但始终open 无法输出出来是什么地方的问题呢


回答关注问题邀请回答
收藏

4 个回答

  • 微盟
    微盟
    2020-08-24

    贴一下,open赋值的具体代码,检查一下是不是异步事件的原因,在当前页面的生命周期中,open还没有完成赋值

    2020-08-24
    有用
    回复
  • 猛男陈阔
    猛男陈阔
    2020-08-24

    通俗一点就是因为你open是异步赋值的 你同步console.log的时候此时open还没有赋值

    2020-08-24
    有用
    回复
  • 欢乐马
    欢乐马
    2020-08-24

    楼主遇到的是时序问题,建议阅读开发文档 Api Promise

    2020-08-24
    有用
    回复 1
  • 浪花骑士
    浪花骑士
    2020-08-24

    提示的内容意思大概是"打印的内容只是当前这个值的内容,不一定是打印时这个值的内容"

    你试试console.log(JSON.parse(JSON.stringify(app.globalData)))

    这样打印出来值的内容,可以保证是你打印时的值的内容

    2020-08-24
    有用
    回复 9
    • Mu
      Mu
      2020-08-24
      您给我这个代码 打印出来是空白的
      2020-08-24
      回复
    • 浪花骑士
      浪花骑士
      2020-08-24回复Mu
      因为他打印的时候本来就是没这个值的,自然不会打印出来,
      难道你执行console.log(JSON.parse(JSON.stringify(app.globalData)))打印来的东西表明app.globalData里有open?
      2020-08-24
      回复
    • Mu
      Mu
      2020-08-24
      那为什么1的globalData能看到open和text,但2打印globalData.open的时候就没了
      2020-08-24
      回复
    • 浪花骑士
      浪花骑士
      2020-08-24回复Mu
      你试试console.log(JSON.parse(JSON.stringify(app.globalData)))
      可以保证是你看到的是打印时的值的内容
      2020-08-24
      1
      回复
    • Mu
      Mu
      2020-08-24回复浪花骑士
      ???
      2020-08-24
      回复
    查看更多(4)
登录 后发表内容
问题标签