对象 Promise 显示而不是从 API 调用中提取的数据

Posted

技术标签:

【中文标题】对象 Promise 显示而不是从 API 调用中提取的数据【英文标题】:object Promise showing instead of data pulled from API call 【发布时间】:2021-12-25 21:15:41 【问题描述】:

我正在尝试从 opensea api 获取数据并在前端显示来自它的返回部件名称。

这是我获得 100% 正常工作的 api 调用的函数

async function getData(url)
var _data;
 let response = await fetch(url);
 let data = await response.json();  
 _data = [data.name, data.id];
 console.log(_data);
 return _data[0];

控制台的这个日志显示我想要它到

但是当我尝试让它显示在前端时

 options = getData('https://api.opensea.io/api/v1/asset/0xb47e3cd837ddf8e4c57f05d70ab865de6e193bbb/1/');

使用 options 获取数据并暂时显示它直到它起作用

它显示了这个

[object Promise] 应该在哪里显示 [cryptopunk #1, 158831]

任何人都知道我做错了什么

options = getdata() 在类内部,@component 上方的 async 函数

【问题讨论】:

这能回答你的问题吗? Why is my asynchronous function returning Promise <pending> instead of a value? | async/await implicitly returns promise? | How to access the value of a promise? | How to return the response from an asynchronous call 不,遗憾的是我没有尝试过,但我无法等待班级的来电,因为您无法异步整个班级以使用等待 1.类可以有async 方法。所以,绝对可以在一个类中使用await。 2. 您可以随时使用.then()。无论您选择什么,您都有一段异步代码 - 您无法将其转换为同步代码。 export class SharestableComponent 在我的班级的这段代码中实现 OnInit 我如何将其变成异步的 你没有使 异步。 方法可以是异步的。 【参考方案1】:

你试过了吗

getData('https://api.opensea.io/api/v1/asset/0xb47e3cd837ddf8e4c57f05d70ab865de6e193bbb/1/').then(data=>
console.log(data);
)

这一切正常

async function getData(url)
  var _data;
  let response = await fetch(url);
  console.log(response);
  return response;
 
 
 getData('https://jsonplaceholder.typicode.com/todos/1').then(option=>
 console.log(option)
 )

【讨论】:

但将 getData 保存到一个变量中,然后在角度 html 中将该变量用作 variable 仍将其显示为 [object Promise] 没关系,我以不同的方式做到了这一点,它奏效了,你的天才,谢谢 x

以上是关于对象 Promise 显示而不是从 API 调用中提取的数据的主要内容,如果未能解决你的问题,请参考以下文章

如何在 React 中正确地进行 GET 调用,返回一个 observable(类似于 Angular 中的方法而不使用 Promise)?

Django - 部署时 Google Maps API Uncaught in promise 错误

如何从对象的`get()`获取异步数据而不返回Promise

Python3 Flask 路由变量显示为变量名而不是从邮递员传递的值

Vue 2.0 项目在IE下显示空白

Vue 2.0 项目在IE下显示空白