Читаемый поток получить blob - PullRequest
0 голосов
/ 09 мая 2020

Я получаю фото с моего сервера. Я знаю, что сервер отправляет blob, а большой двоичный объект - правильный . (сервер показывает байты).

На клиенте я пытаюсь получить это blob:

function createFiles(url){

  fetch('https://....jpg', {
  method: 'POST',
  headers: { Accept: 'application/json'}
  })
.then(response =>  response.body)
.then(body => {
  console.log(body);      //** print a streamable object

      const reader = body.getReader();
      return new ReadableStream({
   start(controller) {
     return pump();
     function pump() {
       return reader.read().then(({ done, value }) => {
         // When no more data needs to be consumed, close the stream
         if (done) {
             controller.close();
             return;
         }
         // Enqueue the next data chunk into our target stream
         controller.enqueue(value);
         return pump();
       });
     }
   }
 })
})
.then(stream => new Response(stream))
.then(response => response.blob())
.then(blob => console.log(blob)) // ** print an empty blob size of 2 .
.catch(err => console.error(err));


}

Если я печатаю body сразу, я вижу объект, который равен ReadableStream. (заблокировано: ложь)

Когда я печатаю blob в конце, я получаю пустой blob, который имеет type = "" и size = 2.

Но это предположительно фотография.

Как я могу получить эту каплю из fetch?

...