26

ReadableStreamでfetchを使用しようとしています。この例では、ReadableStream は単純に "Some data..." を無期限に繰り返す必要があります。

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

これはうまくいきません。が 1 回実行される間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 (または動的データを書き込むことができる任意の種類のストリーム) をフェッチで使用できるようにするにはどうすればよいですか?

あるいは、これがまだ可能でない場合は、これを示していただけますか? ありがとうございました。

注: これは、 HTTP 経由でブラウザーからサーバーにデータをストリーミングする方法からの、より具体的なスピンオフの質問です。

4

1 に答える 1

18

Fetch Standard への PR については、https://github.com/whatwg/fetch/pull/425を参照してください。それが完了すると、これがブラウザーに (ゆっくりと) 組み込まれることが期待できます。

于 2016-12-19T12:14:40.300 に答える