流 API - Response.body 响应正文
在 Stream API 中,主体是 Response 接口的一个属性。 用于获取ReableStream的body内容。 它是只读属性。 响应正文不是以单个正文形式发送,而是以小块形式发送,客户端收到数据后立即开始处理。 它不必等到完整的响应。
语法
Response.body
对于使用 null body 属性创建的任何 Response 对象,此属性返回 ReadableStream 或 null。
示例
在下面的程序中,我们将看到如何在 Stream API 中使用 Response Body。 为此,我们使用 fetch() 向给定的 URL 发送 GET 请求。 如果响应成功,则在response.body.getReader()的帮助下将响应主体作为"ReadableStream"获得。 然后我们定义一个 readMyStream() 函数来读取从流接收的数据块。 如果发生任何错误,则 catch() 函数会成功处理该错误。
<script> // fetch() 函数发送 GET 请求 fetch('http://example.com/') .then(response => { if (response.ok) { // 使用 body 属性我们得到 ReadableStream const myReader = response.body.getReader(); // 使用这个函数我们读取块 function readMyStream() { return myReader.read().then(({ done, value }) => { if (done) { // 串流已完成 return; } // 处理来自块的数据 const receivedData = new TextDecoder().decode(value); console.log(receivedData); // Continue reading return readMyStream(); }); } return readMyStream(); } }) .catch(error => { // 处理错误 console.log('Found Error:', error); }); </script>
结论
这就是响应主体的工作原理。 在使用响应主体之前,请务必检查指定的 API 是否支持流式响应。 因为并非所有 API 都支持流式响应。 在下一篇文章中,我们将了解 Stream API 中的字节读取器。