Javascript Axios未解决,状态仍然是承诺
我已经使用axios有一段时间了,但我就是无法摆脱这个问题。 尝试了axios和fetch,但这无法解决我的承诺,我的状态仍然是承诺Javascript Axios未解决,状态仍然是承诺,javascript,reactjs,axios,fetch,state,Javascript,Reactjs,Axios,Fetch,State,我已经使用axios有一段时间了,但我就是无法摆脱这个问题。 尝试了axios和fetch,但这无法解决我的承诺,我的状态仍然是承诺 import axios from 'axios'; export const login = async (state, payload) => { try { const response = await axios.post('http://localhost:8080/token-auth/', payload)
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
}
}
}
它总是返回承诺,而不是数据,但是如果I console.log,我会在控制台上获取数据。异步函数总是返回承诺
函数前面的“async”一词意味着一件简单的事情:函数总是返回一个承诺。其他值自动包装在已解析的承诺中
因此,在调用异步函数时,必须处理承诺
试试这个
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);
})()
例如:
异步函数f{
返回1;
}
//那就答应吧
f、 thenconsole.log;//1看起来您已经发布了两次部分代码。在调用异步函数后,您将始终得到承诺。在wait语句之后执行该操作,或者使用。然后在调用异步函数时。显示与状态相关的其余代码。您现在展示的是如何进行API调用,因此这并没有真正向我们展示整个画面。