Advertisement
Guest User

Untitled

a guest
Jan 19th, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.02 KB | None | 0 0
  1.  
  2. const fetchProgress = (onProgress) => {
  3. return response => {
  4. const contentLength = response.headers.get('content-length') || 0;
  5. const total = parseInt(contentLength, 10);
  6.  
  7. let loaded = 0;
  8.  
  9. return new Response(
  10. new ReadableStream({
  11. start(controller) {
  12. const reader = response.body.getReader();
  13.  
  14. read();
  15. function read() {
  16. reader.read().then(({done, value}) => {
  17. if (done) {
  18. controller.close();
  19. return;
  20. }
  21. loaded += value.byteLength;
  22. onProgress({loaded, total, percentage: loaded / total * 100})
  23. controller.enqueue(value);
  24. read();
  25. });
  26. }
  27. }
  28. })
  29. );
  30. };
  31. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement