收藏
回答

无法通过全局变量获得openid?

wx.login({

success(res) {

//发起网络请求

wx.cloud.callFunction({

name: 'login'

}).then(res => console.log(res)).then(db.collection('zhongdui').add({

data: {

openid: res.result

}

})).then(

kkid = res.result,

)

}

})

其中kkid为全局变量,函数运行后kkid的值为undefined

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

2 个回答

  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2019-10-28


    wx.login({

        success(res) {

            //发起网络请求

            wx.cloud.callFunction({

                name: 'login'

            }).then(res2 => {

                console.log(res2)

                kkid = res.result

                return db.collection('zhongdui').add({

                    data: {

                        openid: res.result

                    }

                })

            })

        }

    })

    如果要在wx.login之外能打印kkid 值,还需配合async / await 使用

    2019-10-28
    有用 1
    回复 8
    • z
      z
      2019-10-28
      所以全局变量kkid在wx.login变成局部变量了么
      2019-10-28
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2019-10-28回复z
      不是这么说
      你那么写,第二个和第三个then里res是不存在的
      2019-10-28
      1
      回复
    • z
      z
      2019-10-28回复o0o有脾气的酸奶
      但是为什么第二个then里可以获得res.result
      2019-10-28
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2019-10-28回复z
      第二个then里面的res是wx.login success的res
      2019-10-28
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2019-10-28回复z
      第二个then里面的res就不是云函数回调的res,如你res.result是指wx.login的,那没问题
      2019-10-28
      回复
    查看更多(3)
  • 罗梅光
    罗梅光
    2019-10-28

    楼上好厉害,

    2019-10-28
    有用
    回复
登录 后发表内容
问题标签