收藏
回答

将callFunction返回值赋值给全局变量问题?

业务需要在app.js中获取用户的openid,然后在其他页面作为查询数据库判别条件。

我在app.js onLunch函数中使用如下代码获取openid

this.globalData = {
      openid: ''
    }


   wx.cloud.callFunction({
     name:'login',
   }).then(res => {
     that.globalData.openid = res.result.openid
   })
   console.log(that.globalData.openid)

但是最后打印显示globalData.openid为空值,请问应该如何解决


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

1 个回答

  • Mr.Zhao
    Mr.Zhao
    2020-04-30
          
          异步赋值问题,得写到then里面
    
          wx.cloud.callFunction({
         name:'login',
       }).then(res => {
         that.globalData.openid = res.result.openid;
              console.log(that.globalData.openid)
       })
       
    
    2020-04-30
    有用
    回复 6
    • ᯤ⁶ᴳ⁺
      ᯤ⁶ᴳ⁺
      2020-04-30
      这样的话在别的页面调用openid好像打印结果还是空呀
      2020-04-30
      回复
    • Mr.Zhao
      Mr.Zhao
      2020-04-30回复ᯤ⁶ᴳ⁺
      你在别的页面是怎么调用的,你别老说不行。我也没代码
      2020-04-30
      回复
    • ᯤ⁶ᴳ⁺
      ᯤ⁶ᴳ⁺
      2020-04-30回复Mr.Zhao
      解决了,谢谢
      2020-04-30
      回复
    • ᯤ⁶ᴳ⁺
      ᯤ⁶ᴳ⁺
      2020-04-30回复Mr.Zhao
      通过async和await关键字就能解决
      2020-04-30
      回复
    • Mr.Zhao
      Mr.Zhao
      2020-04-30回复ᯤ⁶ᴳ⁺
      如果代码写到 app.js onLanuch里面。然后在index.js的onLoad里面获取全局变量,加上async也是没用的
      2020-04-30
      回复
    查看更多(1)
登录 后发表内容
问题标签