javascript - Promise 中的 API 调用(TypeError:response.json 不是函数)
问题描述
为什么我不断收到 TypeError: response.json is not a function?
我对此进行了广泛的研究,但是所有响应都提到了异步等待调用,并且我对纯 Promise 语法感到好奇(顺便说一下,“新 Promise ..”语法,而不是使用 Promise.all 的语法)
const getName0 = (username) => new Promise((resolve, reject) => {
const url = `https://api.github.com/users/${username}`;
const response = fetch(url);
if (response) {
const json = response.json();
return resolve(json.name);
} else {
return reject("User does not exist!");
}
});
getName0('rickitan').then(res => console.log(res)).catch(err => console.log(err));
解决方案
试试这个获取语法
fetch('https://api-to-call.com/endpoint').then(response => {
if(response.ok) {
return response.json();
}
throw new Error('Request failed!');
}, networkError => console.log(networkError.message)).then(jsonResponse => {
return jsonResponse;
})
推荐阅读
- node.js - 在 Docker 映像中安装纱线
- relational-algebra - 如何在关系代数中编写一个查询,该查询具有两个具有相同名称但相关性不同的共同属性的表
- python - 使用 getch() 获取的字符被写入控制台,即使在使用 noecho() 之后
- java - Java 将(名称)字段添加到 JDK 对象(如 HashMap)
- python - 从列表中删除重复项并按相反顺序排序的最佳/最 Pythonic 方法
- rsync - linux rsync 是否会通过选项 --compress 提高图片复制速度
- java - 当集群中的元素为零时如何处理kmeans
- html - 如何在表格中放置隐藏表格?
- c# - 如果列是时间,则在 DataTable 中选择所有查询不会获取项目
- python - 无法使用 Scrapy 抓取某些链接