当前位置: 首页 > 面试题库 >

如何从异步函数使用异步返回值?

汝楷
2023-03-14
问题内容

如何从异步函数返回值?我试图喜欢这个

const axios = require('axios');
async function getData() {
    const data = await axios.get('https://jsonplaceholder.typicode.com/posts');
    return data;
}
console.log(getData());

它给了我,

Promise { <pending> }

问题答案:

您不能await超出async范围。为了获得预期的结果,您应该将其包装console.log到异步IIFE中,即

async function getData() {
  return await axios.get('https://jsonplaceholder.typicode.com/posts');
}

(async () => {
  console.log(await getData())
})()

Worked 样品。

有关更多信息 async/await

由于axios返回一个Promise,因此async/await可以将其省略,getData如下所示:

function getData() {
  return axios.get('https://jsonplaceholder.typicode.com/posts');
}

然后像以前一样做

(async () => {
   console.log(await getData())
})()


 类似资料:
  • 问题内容: 如何从异步函数返回值?我试图喜欢这个 它给了我, 问题答案: 您不能超出范围。为了获得预期的结果,您应该将其包装到异步IIFE中,即 样品。 有关更多信息 由于返回一个Promise,因此可以将其省略,如下所示: 然后像以前一样做

  • 问题内容: 在SO中多次问过这个问题。但是我还是收不到东西。 我想从回调中获得一些价值。请看下面的脚本进行澄清。 如果我尝试返回该值,则只是“未定义”。我遵循了SO的一些想法,但仍然失败。 那些是: 问题答案: 这是不可能的,因为您无法从同步方法内部的异步调用返回。 在这种情况下,您需要将回调传递给foo,该回调将接收返回值 问题是,如果内部函数调用是异步的,则所有“包装”此调用的函数也必须是异步

  • 更新 我已经读了十几篇关于这个话题的文章,但没有一篇涉及到这个基本问题。我将在本文末尾列出一个参考资料部分。 原始帖子 我对函数的理解是,它返回一个promise。 MDN文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function 在我的程序中,我可以编写如下内容: 我

  • 它必须是基本的,但请帮助我理解为什么这不起作用。 当我编写一个普通的arrow函数并返回jsx时,它就工作了。但是,当我使用async/await请求和相同的arrow函数返回jsx时,它失败了。 编辑: 实际上,我必须在列表视图中显示用户的配置文件图像。所以,我调用这个函数来检索我的块中相应用户的图像 这很有效 但事实并非如此

  • 我想返回用户的电话号码,但我得到的是[对象对象]。我在想,如果它在等待完成之前返回值。这是我的代码。 输出12345678,以便我可以在异步函数外部访问它。例如,要在个人资料页面中显示它,

  • 问题内容: 我正在使用nodejs通过Mongoose从Mongodb查询数据。获取数据后,我想对该数据做一些处理,然后再将其响应给客户端。但是我无法获得返回值。在Google上浏览后,我了解到Node.js函数是异步javascript函数(非I / O阻止)。我尝试了这个Tut( 问题答案: 获得未定义值的原因是因为find函数是异步的,并且可以随时完成。在您的情况下,使用后就结束了,因此在访