我希望您能解决axios遇到的问题。
我只是想在通话之外获得价值,但我无法使其发挥作用。这是一段小代码:
axios.get('/api/get-user').then(({ data }) => {
this.user = data;
console.log(this.user); //returns the correct data
return this.user;
});
console.log(this.user); //returns null
这是怎么回事?我也尝试过let self = this
,但无济于事。我希望你们能帮助我!
答案 0 :(得分:7)
这是异步的问题,您正在axios请求完成之前调用console.log。这就是为什么我们使用.then(res => {})。
一种替代方法是使用异步等待。
用异步装饰父函数
const myFunction = async() => {
const {data} = await axios.get('/api/get-user');
this.user = data;
console.log(this.user);
}
有关详细信息,请参见MDN。此链接是示例(我认为对理解最有帮助)https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function#Examples