javascript - 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]
我希望访问响应中的数据。有什么我想念的吗?
解决方案
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}`);