在非异步函数中调用异步函数

时间:2019-08-21 16:15:45

标签: javascript async-await

我编写了这个异步函数,该函数从API提取数据。

const getData = async () => {
  const response = await fetch(`${url}`);
  const json = await response.json();
  return json.results.slice(0,3);
}

我希望它返回一个包含3个对象的数组。

我在非异步函数中调用getData函数

function App() {
  const thing = getData().then(data => data);
  console.log("Thing is: " + thing);
}

但是我没有打印出我的数组,而是得到"Thing is: [object Promise]",我也不知道为什么。我已经阅读了一下,它说async函数将始终返回一个promise,所以尽管我在getData中的return语句定义了一个由3个对象组成的数组,但最终将返回一个promise,一旦解决,我可以访问该数组。因此,我继续进行操作,然后在调用.then函数时使用getData,但是我仍然得到诺言而不是数据吗?我想我的箭头功能做错了,我不知道我是否正确返回了数据。

0 个答案:

没有答案