收藏
回答

使用云函数获取用户openid,在callFunction里面设置setData失败?

getOpenid(){
    let that = this;
   
    wx.cloud.callFunction({
      name:'getopenid',
      complete:res=>{
        console.log('云函数获取到的openid:',res.result.openid)
        var openid = res.result.openid;
        this.setData({
          id:openid
        })
        console.log(that.data.id) #打印出正确的openid
      }
    })
    console.log(that.data.id) #打印的还是openid修改之前的
    
  },

调用getOpenid之后

14,15行输出Page下data的值,14行点开id里面有值,15行取打印不出来??

callFunction函数是有什么恢复现场的操作吗?

我要怎么获取用户的openid呢

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

2 个回答

  • 拾忆
    拾忆
    2022-01-09

    JS异步问题,可以自行百度参考使用 async/await 解决。

    2022-01-09
    有用
    回复 3
    • anmui
      anmui
      2022-01-09
      我调用完方法之后,data的id是有值的,但是打印不出来,就是图二那样,这也是异步的问题吗
      2022-01-09
      回复
    • 拾忆
      拾忆
      2022-01-09回复anmui
      百度下JS异步是怎么回事吧
      2022-01-09
      回复
    • anmui
      anmui
      2022-01-09回复拾忆
      好的,感谢!
      2022-01-09
      回复
  • Mr.Zhao
    Mr.Zhao
    2022-01-09

    异步问题,写到complete里面才正确,跟云函数一点关系都没有

    2022-01-09
    有用
    回复 8
    • anmui
      anmui
      2022-01-09
      是setDate写到complete里面吗,现在它就在里面啊
      2022-01-09
      回复
    • Mr.Zhao
      Mr.Zhao
      2022-01-09回复anmui
      这个啊。如果我说setData写到里面,我不就是眼瞎了吗
      2022-01-09
      回复
    • anmui
      anmui
      2022-01-09回复Mr.Zhao
      但我想问的setData为啥没有成功啊
      2022-01-09
      回复
    • Mr.Zhao
      Mr.Zhao
      2022-01-09回复anmui
      执行成功了,只不过是执行顺序问题。取值比赋值先执行的,怎么能对
      2022-01-09
      1
      回复
    • Mr.Zhao
      Mr.Zhao
      2022-01-09回复anmui
      2022-01-09
      回复
    查看更多(3)
登录 后发表内容