一尘不染

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

node.js

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

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

它给了我,

Promise { <pending> }

阅读 211

收藏
2020-07-07

共1个答案

一尘不染

您不能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())
})()
2020-07-07