Vuejs2 axios.get响应未分配给变量

Vuejs2 axios.get响应未分配给变量,vuejs2,axios,Vuejs2,Axios,我研究这个问题已经有一段时间了,还没有找到答案。 我正在使用axios.get返回userID。我得到了正确的响应-在执行console.log(response.data)时,我得到了userID的一个数字

我研究这个问题已经有一段时间了,还没有找到答案。 我正在使用
axios.get
返回
userID
。我得到了正确的响应-在执行
console.log(response.data)时,我得到了
userID
的一个数字response.data
赋值给一个局部变量以便返回它时,它并没有被设置。 (我还尝试在
数据下全局定义
userID
,然后将其引用为
userID。这
没有帮助。) 我看过其他的答案,比如这个:但它们对我不起作用。 感谢您的帮助。提前谢谢。(代码如下)

编辑:我也看了这个问题:但它没有为我添加任何内容。它建议使用promises和
then
块,但我已经这么做了,它仍然不起作用

  retrieveUserID: function()
{
   var userID=0;


this.axios.get('getUserID.php' , { 
  params: {
                  username: this.currentUser
          }  })

.then(response => {
            console.log("retrieveUserID:response.data = " + response.data);

            userID=response.data;
       } )
              .catch((error )=> {this.submitSessionFailure(error);});



   return userID ;  // staying zero

  }
试试这个

retrieveUserID: function()
{
  this.axios.get('getUserID.php' , { 
    params: {
      username: this.currentUser
    } 
  })
  .then(response => {
    var userID=0;
    console.log("retrieveUserID:response.data = " + response.data);
    userID=response.data;
   } )
  .catch((error )=> {this.submitSessionFailure(error);});
  return userID ;  // staying zero
} 

尝试添加
NULL
,但出现以下错误:未捕获引用错误:未定义NULL。另外,您是否打算在方法之外定义
userID
?(我两种方法都试过了,但都不起作用)用另一个选项编辑了答案。这似乎是该变量的范围界定问题。把它放在全局(功能之外)应该是有效的。因此,您有一个在别处偶然定义的同名变量?如果这是一个问题,我将
userID
重命名为
theUserID
,因为调用
retrieveUserID()
的方法将结果分配给名为
userID
的局部变量。但是,当我尝试编辑时,它给了我一个错误:userID未定义-因为您返回的
userID
超出了定义它的范围。在axios调用(异步)响应到达之前很久,您就已经返回了
userID
(同步)。阅读这两种代码执行方式。可能与@connexo重复-我通读了这个问题,但没有看到对我有帮助的答案。他们建议使用承诺并使用
then
块检索响应,但我已经这样做了。你有什么建议吗?第一个答案包含了你可能需要首先理解然后解决问题的所有信息。@connexo-我尝试了@FelixKling的答案(第一个答案),其中使用了带有
然后
的承诺,但我的
用户ID
仍然没有设置。