收藏
回答

开发者工具本地调试云函数getWXContext().OPENID 返回undefined?

使用开发者工具,本地调试云函数,使用

const wxContext = cloud.getWXContext()

let openid = wxContext.OPENID;

有时会出现openid 为undefined


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

12 个回答

  • 邓坤力
    邓坤力
    2019-09-23

    如果是模拟云函数调云函数,那是没有的,只有小程序端调云函数才有

    2019-09-23
    有用
    回复 3
    • 刘万坤
      刘万坤
      2020-05-24
      这个什么机制?我遇上了,为什么云端会得不到openid?
      2020-05-24
      回复
    • what
      what
      2022-02-09
      emmmm……不知道现在回答还有没有用,我自己不是很熟悉云函数,刚刚学的,如果是直接
      return cloud.getWXContext().OPENID
      可以改成return await cloud.getWXContext().OPENID
      await可以理解成等待数据返回,因为请求需要一段时间,但是return和let都是瞬间执行的,可能数据还没有请求到就执行赋值命令了,当然是undefined。我猜测有时候为undefined就是网络跟不上了,楼主看看类比过看看在哪里加个await?
      有不正确的地方欢迎指出
      2022-02-09
      回复
    • ᴮᴸᵁᴱ
      ᴮᴸᵁᴱ
      2022-03-18回复what
      试过了还是不行,我是真机不行,开发者工具正常
      2022-03-18
      回复
  • 杉木
    杉木
    2020-02-01

    同样遇到这个问题!有时候概率挺高的

    2020-02-01
    有用 2
    回复 2
    • 程
      2020-02-28
      连续请求就一定出现这个情况,我看了下代码好像是openid的环境变量没来记得注入到环境中
      2020-02-28
      回复
    • link
      link
      2020-03-03
      请问楼主解决了吗?
      2020-03-03
      回复
  • what
    what
    2022-02-09

    emmmm……不知道现在回答还有没有用,我自己不是很熟悉云函数,刚刚学的,如果是直接

    return cloud.getWXContext().OPENID

    可以改成return await cloud.getWXContext().OPENID

    await可以理解成等待数据返回,因为请求需要一段时间,但是return和let都是瞬间执行的,可能数据还没有请求到就执行赋值命令了,当然是undefined。我猜测有时候为undefined就是网络跟不上了,楼主看看类比过看看在哪里加个await?

    有不正确的地方欢迎指出

    2022-02-09
    有用 1
    回复 1
    • 农夫的糖
      农夫的糖
      2022-03-21
      很有用,感谢!
      2022-03-21
      回复
  • link
    link
    2020-03-03

    我这儿是本地调试调用间隔太短会拿不到 wxContext.OPENID上传到云后则不会有这个问题。。

    2020-03-03
    有用 1
    回复
  • 大胡子怪蜀黍
    大胡子怪蜀黍
    03-17

    遇到了相同的问题,

    看看你们跟我是不是一样的情况,复现步骤:

    1.打开云函数本地调试,

    2.正常使用,有openid

    3.下班, 啥也不关,开发者工具,跑起来的项目,云函数本地调试等,然后回家调戏老婆,调戏完用家里电脑捣腾一下代码,此时会开发者工具会要求你扫码登录,直到此时都一切正常。

    4.第二天上班,打开办公室电脑,继续昨天的活儿,这个时候开发者工具会要求你再次扫码,不知道是因为token有效期过了还是因为步骤3中在另一台电脑登录了。总而言之重新登录了

    5.注意,此时云函数本地调试从未关闭过,经过重新登录,就拿不到openid了,只需要关闭一下本地调试,再次打开就好了

    如果因为没老婆无法复现步骤3的,可以调戏别人老婆。

    03-17
    有用
    回复
  • LeeaYoung
    LeeaYoung
    2022-11-05

    问题依然存在


    2022-11-05
    有用
    回复
  • Espise
    Espise
    2022-04-01

    把let改成var试试,let会限制使用范围,超出范围会报undefined

    2022-04-01
    有用
    回复
  • 且听清歌
    且听清歌
    2022-03-12

    我是在做联表时遇到报500的问题,后来发现直接拿用户openid需要先定义const wxContext = cloud.getWXContext()

    2022-03-12
    有用
    回复
  • 养乐多🍶
    养乐多🍶
    2021-02-24

    还有一种情况 是小程序更换openid

    cloud.getWXContext()返回的openid还是上一个失效的 这怎么办呢。。。。

    2021-02-24
    有用
    回复
  • Laidz
    Laidz
    2020-05-28

    问题依然坚挺

    2020-05-28
    有用
    回复

正在加载...

登录 后发表内容
问题标签