Streaming with Fetch
Read large responses chunk by chunk using response.body.getReader() — ideal for progress bars and server-sent data.
Read large responses chunk by chunk using response.body.getReader() — ideal for progress bars and server-sent data.
const res = await fetch("/api/large-file");
const reader = res.body.getReader();
const total = +res.headers.get("Content-Length");
let loaded = 0;
while (true) {
const { done, value } = await reader.read();
if (done) break;
loaded += value.length;
updateProgress(loaded / total * 100);
processChunk(value);
}
Streaming avoids buffering the entire response in memory — critical for large downloads.
More in JavaScript