如何使用 Async-Await 从异步函数检索值
在 JavaScript 中,了解如何从异步函数返回值至关重要。让我们深入研究一个场景:
场景:
考虑以下代码片段:
const axios = require('axios'); async function getData() { const data = await axios.get('https://jsonplaceholder.typicode.com/posts'); return data; } console.log(getData());
问题:
如果执行此代码,您将在控制台中看到“Promise {
解决方案:
为了解决这个问题,我们必须遵守异步操作只能在另一个异步上下文中等待的规则。在我们的例子中,我们可以通过将 console.log() 语句封装在异步 IIFE(立即调用函数表达式)中来实现这一点:
async function getData() { return await axios.get('https://jsonplaceholder.typicode.com/posts'); } (async () => { console.log(await getData()) })()
这确保了 console.log() 语句仅被执行一旦 GetData() 函数完成其异步操作并返回数据。
或者:
如果 axios 返回 Promise,就像您的代码中那样,我们可以通过从 getData() 中删除 async 和 wait 来简化代码。然后代码变为:
function getData() { return axios.get('https://jsonplaceholder.typicode.com/posts'); } (async () => { console.log(await getData()) })()
通过在异步上下文中等待 getData() 函数,仍然可以达到相同的结果。
以上是如何在 JavaScript 中使用 Async-Await 从异步函数中检索值?的详细内容。更多信息请关注PHP中文网其他相关文章!