javascript - 如何使用函数中的 async-await 从异步函数返回值?

标签 javascript node.js asynchronous async-await axios

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

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())
})()

Working样本。

关于 async/await 的更多信息

由于 axios 返回一个 promise ,因此 getData 函数可以省略 async/await,如下所示:

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

然后像之前一样做

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

关于javascript - 如何使用函数中的 async-await 从异步函数返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49938266/

相关文章:

javascript - 如何使用 ajax.get 调用从 node.js 服务器获取响应

javascript - 使用 Bluebird promise bcrypt-nodejs

javascript - 从 package-lock.json 获取库

Javascript:搜索键以返回值

javascript - 在特定时间为视频添加链接

javascript - Hook 之前的 Mocha 在套件之前没有运行

node.js - 为什么阻塞代码比非阻塞代码表现得更好?

c# - WCF 调用一个函数而不等待它完成它的工作?

javascript - 如何同时异步触发多个 API 调用?

c++ - std::async过多参数