javascript - 获取返回“未定义”的 API
问题描述
我目前正在学习如何使用 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);
}
解决方案
Promise.then
方法可以以某种方式链接,每个链接的then
方法都将接收前一个方法的返回值。在您的情况下,第一个不返回任何值,使第二个不接收任何值,也称为未定义。
由于您的代码调用返回 json 内容的 url,您应该在登录成功后返回res.json()
.
这将读取响应主体的流并将其解析为 json,使用 promise。
推荐阅读
- mysql - 在 SQL 中合并同一日期事务
- elixir - 引发错误时在堆栈跟踪中包含函数参数
- google-ads-api - 如何使用谷歌广告更改谷歌数据工作室链接中的标签名称
- json - 从 SQL Server 表中读取 Json 值
- python - Pylint 在 Visual Studio Code 中给出错误,但代码运行
- google-app-engine - 如何使用代理/隧道虚拟机在用户和 APP Engine 之间进行通信?
- jenv - /Users/username/.jenv/jenv.version:权限被拒绝
- python - 绘制 4D 信息
- xamarin - 如何在 xamarin.forms 应用中使用 Google Ad-mob 的 Adpative 横幅广告?
- javascript - 清除 forEach 循环内的变量计数器?