Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const fetchProgress = (onProgress) => {
- return response => {
- const contentLength = response.headers.get('content-length') || 0;
- const total = parseInt(contentLength, 10);
- let loaded = 0;
- return new Response(
- new ReadableStream({
- start(controller) {
- const reader = response.body.getReader();
- read();
- function read() {
- reader.read().then(({done, value}) => {
- if (done) {
- controller.close();
- return;
- }
- loaded += value.byteLength;
- onProgress({loaded, total, percentage: loaded / total * 100})
- controller.enqueue(value);
- read();
- });
- }
- }
- })
- );
- };
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement