[英]Using fetch() Webapi
我试图看看浏览器的原生webapi fetch()
api是如何工作的。 到目前为止我有这个: Sample-Code ,它工作正常。 但我不明白为什么流式字符串我必须转换为JSON? 我不确定为什么有人甚至需要通过REST API将JSON作为字符串流式传输? 我很确定我在这里遗漏了一些东西,但我不知道如何告诉fetch()
将响应作为JSON而不是作为一个ReadableByteStream
,我必须将其转换为字符串并将其解析为JSON。
我的问题是这个,
string
在这里流式传输? fetch()
以文本或json的形式获取我的响应,以便我可以执行docs中提到的response.json()
或response.text()
? (仅供参考我尝试添加头对象并创建一个Header
实例并将其传递给fetch()
并未改变我的响应。 你需要做的就是打电话
fetch("https://api.github.com/users/ajainarayanan").then(res => res.json());
这是一些修改后的代码具有相同的结果
fetch("https://api.github.com/users/ajainarayanan")
.then(res => res.json())
.then(res => console.log('Profile: ', JSON.stringify(res, null, 2)));
显然,我所要做的response.json()
在一then
处理程序,并在随后的实际值then
处理程序。 更新代码 。 我没有意识到的是response.json()
返回了另一个Promise
,我应该像承诺一样处理它。 所以console.log(response.json())
自然只会控制日志JSON对象而不是我的实际json。 谢谢@ aray12的回答。 在我意识到.json()
返回一个承诺之前,我没有意识到答案。
PS:添加此作为答案,因为我无法在评论中添加此内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.