【问题标题】:Fetch API returning "undefined" [duplicate]获取返回“未定义”的 API [重复]
【发布时间】:2020-12-12 03:20:51
【问题描述】:

我目前正在学习如何使用 API,但在从 API 获取数据时遇到了一些麻烦。下面的代码成功地得到了响应,但实际上并没有从服务器获取任何数据。我该如何解决这个问题?

const onClick = () => {
fetch(
  `https://collectionapi.metmuseum.org/public/collection/v1/objects/45734`
)
  .then(res => {
    if (res.ok) {
      console.log(res)
      console.log('SUCESSS')
    } else {
      console.log("Not Successful")
    }
  })
  .then(data => {
    if (data) {
      console.log(data)
    } else {
      console.log("undefined data")
    }
  })
  .catch(error => console.log('ERROR'))

console.log(results);

}

【问题讨论】:

  • 没有你在代码中的什么地方将结果设置为一个值

标签: javascript api fetch-api


【解决方案1】:

promise .then 方法可以以某种方式链接,每个链接的 then 方法将接收前一个方法的返回值。在您的情况下,第一个不返回任何值,使第二个不接收任何值,也称为未定义。

由于您的代码调用的url返回json内容,您应该在登录成功后返回res.json()的结果。

这将读取响应主体的流并将其解析为json,使用promise。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-26
    • 1970-01-01
    • 2019-10-13
    • 1970-01-01
    • 2020-06-16
    • 2019-07-05
    • 2019-10-01
    • 2015-12-26
    相关资源
    最近更新 更多