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
仍然没有设置。