Hopeys 2022-06-28 19:29 采纳率: 75%
浏览 62
已结题

小程序云函数,为啥这个外部获取不到数据?

小程序云函数,为啥这个外部获取不到数据?


 
App({
   
  globalData: {
    userInfo: null,
    openid:null
  },
  onLaunch() {
      wx.cloud.init({
      env:'hope-7g8c1n2f6997c60e' //初始化
    })
    //获取用户openid
    wx.cloud.callFunction({
      name:"comlogin",
      success:res => {
        this.globalData.openid = res.result.openid
        
          //数据库查找
          wx.cloud.database().collection('user').where({
              _openid:res.result.openid
           }).get().then(result =>{
            console.log("1.内部未赋值前:", this.globalData.userInfo)  
            this.globalData.userInfo = result.data[0]
            console.log("2.内部赋值后:", this.globalData.userInfo)  
           }) 

           console.log("3.数据库查询外部", this.globalData.userInfo)  

      }
    })
    console.log("4.callFunction外部",this.globalData.userInfo)
   
  }
  
})

img

  • 写回答

4条回答 默认 最新

  • 林一怂儿 前端领域新星创作者 2022-06-29 09:05
    关注
    //获取用户openid
    wx.cloud.callFunction({
        name: "comlogin",
        // 这里是异步处理
        success: res => { 
            this.globalData.openid = res.result.openid 
            //数据库查找
            wx.cloud.database().collection('user').where({
                _openid: res.result.openid
            }).get().then(result => { // 这里也是异步处理
                console.log("1.内部未赋值前:", this.globalData.userInfo)
                this.globalData.userInfo = result.data[0]
                console.log("2.内部赋值后:", this.globalData.userInfo)
            })
            console.log("3.数据库查询外部", this.globalData.userInfo)
    
        }
    })
    console.log("4.callFunction外部", this.globalData.userInfo)
    

    这两处是异步的缘故吧,如果想让”4.callFunction外部“和"3.数据库查询外部"拿到数据,可以改成同步的方式。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 7月9日
  • 已采纳回答 7月1日
  • 赞助了问题酬金5元 6月28日
  • 修改了问题 6月28日
  • 展开全部