首页 > 解决方案 > Axios get 函数在 React 中返回一个 Promise

问题描述

我尝试使用以下函数从 giphy api 获取数据并将返回的值打印到浏览器控制台。

const fetchData = (url) =>
  {
    return axios.get(url).then(res => res.data.data);
  }

  const data = fetchData(giphy_url);
  console.log(`Data: ${data}`);

但是在打印data变量的值时,它会打印:

Data: [object Promise]

我希望访问响应中的数据。有什么我想念的吗?

标签: javascriptreactjsaxios

解决方案


Axios API 调用返回一个 Promise 对象。来自 Axios文档,“Axios 是一个基于Promise 的HTTP 客户端,适用于 node.js 和浏览器。”

您需要等待一个承诺对象才能访问响应值。请注意,为了await在函数中使用关键字,您需要将其标记为async. 做类似下面的事情。

const fetchData = async(url) =>
  {
    return await axios.get(url).then(res => res.data.data);
  }

  const data = fetchData(giphy_url);
  console.log(`Data: ${data}`);

推荐阅读