微信小程序获取到的code总是上一次获取的值,奇怪!

data: {
    loginCode: null,    //登陆凭据code
},

..............................

wx.login({
      success(res) {
        if (res.code != null) {
          that.setData({
            loginCode: res.code
          })
          console.log('Code: ' + res.code)
        } else {
          wx.showToast({
            title: '登陆失败!',
            icon: 'none',
            duration: 1500
          });
        }
      }
})


假如有一个方法A,上面的wx.login方法优于方法A先执行,
然后在方法A中第一打印loginCode的值是null , 
第二次才是wx.login中获取到的值,依次类推,
方法A中打印loginCode的值总是wx.login方法得到的上一个值,怎么这么奇怪???
传到服务器loginCode也是上一次的值,而不是本次wx.login得到的值....
阅读 2.6k
1 个回答

我才是因为wx.login这个方法是异步的,你打印的时候这个方法虽然调用了,但是还没返回结果
正确的做法是在success的回调里调用你的A方法

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题