请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

获取不到openid的同学看看这里,我找到解决方案了

1.在login.js文件中加上async和await,因为getWXContext( ) 方法是异步的

exports.main = async (event, context) => {  //加上async
  console.log(event)
  console.log(context)
  const wxContext =await cloud.getWXContext() //加上await

 return {
    event,
    openid: wxContext.OPENID,
    appid: wxContext.APPID,
    unionid: wxContext.UNIONID,
  }
}
  1. 然后将login云函数重新上传后,在对小程序进行编译,就可以获得openid的值
  2. app.js中的代码如下:
getOpenid(){
    wx.cloud.callFunction({
      name: 'login'
    }).then((res) => {
      const openid = res.result.openid  //res.result.openid是小写
      // console.log(openid);
      this.globalData.openid = openid
      if (wx.getStorageSync(openid) == '') {
        wx.setStorageSync(openid, [])
      }
    })
  }

正在回答 回答被采纳积分+3

4回答

慕娘4228290 2021-04-04 12:01:36

建议置顶这个回答,不加 async 确实获取不到 openid

1 回复 有任何疑惑可以回复我~
谢成 2020-08-11 22:26:40

cloud.getWXContext()前面应该不需要加await

1 回复 有任何疑惑可以回复我~
  • 提问者 慕婉清9221589 #1
    嗯嗯,我又测试了一下,await 不加也是可以的,但是async是必须要加的!!!
    回复 有任何疑惑可以回复我~ 2020-08-12 08:04:12
  • 慕雪4344617 回复 提问者 慕婉清9221589 #2
    我还是获取不到openid呀
    回复 有任何疑惑可以回复我~ 2021-03-05 23:55:32
慕数据4122455 2021-05-09 20:57:36

谢谢1111111111

0 回复 有任何疑惑可以回复我~
qq_慕用3356041 2021-05-02 23:27:20

好人啊,搞了我一晚上终于弄好了,谢谢啊


0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信