gpt4 book ai didi

javascript - axios 没有解决,状态仍然是一个 promise

转载 作者:行者123 更新时间:2023-12-02 21:54:59 25 4
gpt4 key购买 nike

我使用 axios 一段时间了,但我就是无法解决这个问题。尝试了 axios 和 fetch,但它并没有解决我的 promise ,我的状态仍然是一个 promise 。

import axios from 'axios';

export const login = async (state, payload) => {

try {
const response = await axios.post('http://localhost:8080/token-auth/', payload)
const data = await response.data



return {
user: data.user,
loggedIn: true,
error: false
}
}


catch (error) {
return {
user: null,
loggedIn: false,
error: true
}

}


} const response = await axios.post('http://localhost:8080/token-auth/', payload)
return await response.data

}


catch (error) {
return {
user: null,
loggedIn: false,
error: true
}

}


}

它总是返回一个 promise 而不是数据,但是如果我console.log,我会在控制台上获取数据。

最佳答案

async 函数将始终返回 Promise。

函数前面的“async”一词意味着一件简单的事情:函数总是返回一个 promise 。其他值自动包装在已解决的 promise 中。

因此,当您调用异步函数时,您必须处理 promise 。

试试这个。

import axios from "axios";

export const login = async (state, payload) => {
try {
const response = await axios.post(
"http://localhost:8080/token-auth/",
payload
);
const data = await response.data;
return {
user: data.user,
loggedIn: true,
error: false
};
} catch (error) {
return {
user: null,
loggedIn: false,
error: true
};
}
};

(async function() {
let response = await login(...);
console.log(response);
})()

示例:

async function f() {
return 1;
}


//Handle promise with then
f().then(console.log); // 1

关于javascript - axios 没有解决,状态仍然是一个 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60026825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com