我想学习如何使用axios从这个网站:异步Javascript使用Async - Await
async function getGamerDescription() {
const text = await axios.get(`/api/gamer/${id}/gamerBio`);
return text.data;
}
console.log("bio: ", getGamerDescription());
给我:
bio: Promise {<pending>}
如果我把console.log放在getGamerDescription()函数里面,那么它就会写出我需要的生物文本。
但是我需要将生物文本分配给一个变量,这样我就可以在我的网站上显示它。
有办法吗?
我发现了一些其他SO问题:
Axios返回promise pending
我的调用async/await返回一个Promise{}在我的动作
但他们没有帮助。
我只是想要能够得到这个值,这样我就可以把它赋值给一个变量
一个async函数自动成为一个promise,所以在这种情况下,getGamerDescription
实际上是一个promise,所以你必须在记录它时使用await
,但是await只能在async函数中调用,所以试试这个:
async function getGamerDescription() {
const text = await axios.get(`/api/gamer/${id}/gamerBio`);
return text.data;
}
(async () => console.log("bio: ", await getGamerDescription()))();
请注意,我包装了console.log
内部的异步IIFE和console.log
内使用等待,这是因为我把异步函数getGamerDescription
作为一个承诺。如果你想把它赋值给一个变量你需要在另一个async
函数中使用await