Ajax 简明教程
Stream API - Response Body
在 Stream API 中,body 是 Response 接口的属性。它用于获取 ReableStream 的正文内容。它是一个只读属性。响应正文不会以一个正文发送,而是分成小块发送,客户端在接收到数据后立即开始处理。它不必等到响应完成后。
Example
在以下程序中,我们将看到如何在 Stream API 中使用 Response Body。因此,为此,我们使用 fetch() 向给定的 URL 发送 GET 请求。如果响应成功,则使用 response.body.getReader() 将响应正文获取为“ReadableStream”。然后,我们定义一个 readMyStream() 函数来读取从流中接收的数据块。如果发生任何错误,则将由 catch() 函数成功处理。
<script>
// fetch() function to send GET request
fetch('http://example.com/')
.then(response => {
if (response.ok) {
// Using body property we get the ReadableStream
const myReader = response.body.getReader();
// Using this function we read the chunks
function readMyStream() {
return myReader.read().then(({ done, value }) => {
if (done) {
// Stream is completed
return;
}
// Process the data from the chunks
const receivedData = new TextDecoder().decode(value);
console.log(receivedData);
// Continue reading
return readMyStream();
});
}
return readMyStream();
}
})
.catch(error => {
// Handling error
console.log('Found Error:', error);
});
</script>