Response: textStream() method
{{APIRef("Fetch API")}}{{AvailableInWorkers}}{{SeeCompatTable}}
The textStream() method of the {{domxref("Response")}} interface returns a {{domxref("ReadableStream")}} that can be used to read the contents of the response body in chunks of UTF-8.
This provides an easier mechanism for streaming the response body than piping the {{domxref("Response.body")}} byte stream through a {{domxref("TextDecoderStream")}}.
[!NOTE] If invoked on a
Responsewith a null body, for example a {{httpstatus(204)}} response,textStream()will return a valid empty stream.
Syntax
textStream()
Parameters
None.
Return value
A {{domxref("ReadableStream")}}.
Exceptions
- {{jsxref("TypeError")}}
- : Thrown if the response body is disturbed or locked.
Examples
Reading response body content as a text stream
This example shows how to read a response body as a text stream.
We {{domxref("fetch()")}} a URL to get a Response, obtain a ReadableStream of its body using textStream(), then read the text via a reader created using {{domxref("ReadableStream.getReader()")}}.
const pElem = document.querySelector("p");
async function streamResponseText(url) {
const response = await fetch(url);
const textStream = response.textStream();
// instead of
// const textStream = response.body.pipeThrough(new TextDecoderStream());
const reader = textStream.getReader();
while (true) {
const { value, done } = await reader.read();
if (done) break;
pElem.textContent += value;
}
}
streamResponseText("https://www.example.com");
Specifications
{{Specifications}}
Browser compatibility
{{Compat}}
See also
- {{domxref("ReadableStream")}}
- {{domxref("ReadableStream.getReader()")}}
- {{domxref("Request.body")}}
- {{domxref("Request.textStream()")}}
谢谢你的反馈!