繁体   English   中英

使用fetch()Webapi

[英]Using fetch() Webapi

我试图看看浏览器的原生webapi fetch() api是如何工作的。 到目前为止我有这个: Sample-Code ,它工作正常。 但我不明白为什么流式字符串我必须转换为JSON? 我不确定为什么有人甚至需要通过REST API将JSON作为字符串流式传输? 我很确定我在这里遗漏了一些东西,但我不知道如何告诉fetch()将响应作为JSON而不是作为一个ReadableByteStream ,我必须将其转换为字符串并将其解析为JSON。

我的问题是这个,

  1. 为什么string在这里流式传输?
  2. 我如何告诉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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM