fetch を ReadableStream で使用しようとしています。この例では、ReadableStreamは単に「Somedata ...」を無期限に繰り返す必要があります。
fetch('/', {
method: 'POST',
body: new ReadableStream({
pull: function(controller) {
console.log('pull called!');
controller.enqueue('Some data...');
}
})
});
これは機能しません。 pull
が1回実行されている間、リクエスト本文でデータは送信されません。
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(または動的データを書き込むことができる任意の種類のストリーム)をフェッチで使用できるようにするにはどうすればよいですか?
または、これがまだ不可能な場合は、これを示していただけますか?ありがとうございました。
注:これは、以下からのより具体的なスピンオフの質問です: HTTPを介してブラウザーからサーバーにデータをストリーミングする方法
現在、この作業を行っています。フェッチ標準のPRについては、 https://github.com/whatwg/fetch/pull/425 を参照してください。それが完了すると、これがブラウザに(ゆっくりと)浸透することが期待できます。