Получить с 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. Как только это будет сделано, вы можете ожидать, что это попадет в браузеры (медленно).