我期望从 API 响应中接收一组对象,但在使用 TypeScript 的 React 中获得一组 Promise
Posted
技术标签:
【中文标题】我期望从 API 响应中接收一组对象,但在使用 TypeScript 的 React 中获得一组 Promise【英文标题】:I'm expecting to receive an array of objects from an API response but getting an array of Promises in React with TypeScript 【发布时间】:2022-01-09 00:21:17 【问题描述】:如果这对你来说是一个愚蠢的问题,我真的很抱歉。我对 TypeScript 和 Promises 有点陌生。我试图在不同的网站上寻找这个解决方案,但找不到任何相关的东西。您能否帮助解决如何接收对象数组而不是承诺。另外,如果您分享一些资源,我可以在其中找到与 React with TypeScript 相关的内容,我将非常感激。提前致谢!
index.ts
interface IFetchLikes
item_id: string;
likes: number;
const fetchLikes = async (): Promise<IFetchLikes[]> =>
const response = await axios.get<IFetchLikes[]>('https://us-central1-involvement-api.cloudfunctions.net/capstoneApi/apps/PmGqiCAY4CG3PZPHNcEG/likes');
return response.data;
;
console.log('Response: ', fetchLikes());
【问题讨论】:
【参考方案1】:您不能在没有承诺的情况下从fetchLikes
返回 IFetchLikes[]。
原因:Promise 用于使异步代码同步运行。它是异步的,因为它必须等待 axios API 返回数据。
有两种方法可以处理此信息。
-
在等待之后移动下一个调用函数/可执行代码。 TS example
在前提返回值后使用
then
运行代码。 TS example
文档:https://www.typescriptlang.org/docs/handbook/react.html
【讨论】:
我怎样才能只得到数据(对象数组)而不是承诺? @vaira 我的错误我已经更新了答案以上是关于我期望从 API 响应中接收一组对象,但在使用 TypeScript 的 React 中获得一组 Promise的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 System.Text.Json API 将流反序列化为对象