提问--如何获取axios的响应数据?
js
axios.post(
'/login',
{username: args.username,password: args.password}
).then(res={
异步代码外无法获取到值了,比如下面代码:
let user = 'abc';
axios.post(
'/login',
{username: args.username,password: args.password}
).then(res=>{
user = '123'; // 123
});
console.log(user); // abc
打印出来的是 abc,不是 123,因为 axios 是异步的,下面的打印语句会直接输出,不会等待异步执行结束。如果你要等待那么可以用 asnyc
和 await
语法:
async function test() {
let user = 'abc';
const res = await axios.post('/login', {...});
user = res.data;
console.log(user); // 这里打印的就是 res.data
}
具体原理看 MDN 文档:async_function
我知道axios是异步请求, 我现在需要全局管理登录用户信息, (现在用的是vue3推荐的pinia状态管理), 我想响应数据放在pinia中管理, 也就是我可以在then()中将数据存入pinia, 但是我在其他地方使用pinia时, 却无法获取到之前存入的数据