我如何分配一个变量的async函数的承诺结果?



我想学习如何使用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

相关内容

  • 没有找到相关文章

最新更新