2016-12-02 2 views
4

Я пытаюсь использовать fetch с ReadableStream. В этом примере ReadableStream должен просто повторять «Некоторые данные ...» на неопределенный срок.Fetch with 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 (или какой-либо поток, где я могу писать динамические данные) можно использовать с выборкой?

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

Примечание: Это более специфичный спин-офф вопрос от: Method for streaming data from browser to server via HTTP

+1

https://github.com/whatwg/fetch/issues/439 – guest271314

ответ

3

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

+0

Спасибо. В чем причина того, что сегодня MDD-документы говорят, что ReadableStream можно использовать? Что использует его сегодня? – Brad

+0

Его можно использовать с объектом «Response» в Chrome. – Anne

+1

Возможно, это будет просто приписывание документации, но документы MDN говорят, что ReadableStream можно использовать в запросе. https://developer.mozilla.org/en-US/docs/Web/API/Request – Brad

Смежные вопросы