Получить с ReadableStream в качестве тела запроса

Я пытаюсь использовать fetch с ReadableStream. В этом примере ReadableStream должен просто повторять "Некоторые данные..." бесконечно.

fetch('/', {
  method: 'POST', 
  body: new ReadableStream({
    pull: function(controller) {
      console.log('pull called!');
      controller.enqueue('Some data...');
    }
  })
});

Это не работает В то время как pull выполняется один раз, данные не отправляются в теле запроса.

POST / HTTP/1.1
Host: example.com
Connection: keep-alive
Content-Length: 0
Origin: https://example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36
Accept: */*
Referer: https://example.com/
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.8

Как я могу сделать ReadableStream (или любой вид потока, где я могу записать динамические данные) пригодным для использования с fetch?

Или, если это еще не возможно, не могли бы вы указать это? Спасибо.

Примечание. Это более конкретный побочный вопрос от: Метод для потоковой передачи данных из браузера на сервер через HTTP

1 ответ

Решение

Мы работаем над созданием этой работы, см. https://github.com/whatwg/fetch/pull/425 для PR по стандарту Fetch. Как только это будет сделано, вы можете ожидать, что это попадет в браузеры (медленно).

Другие вопросы по тегам