このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

Request: textStream() メソッド

メモ: この機能はウェブワーカー内で利用可能です。

Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

textStream()Request インターフェイスのメソッドで、リクエスト本文のコンテンツを UTF-8 形式のチャンク単位で読み取るために使用できる ReadableStream を返します。

この仕組みにより、Request.body のバイトストリームを TextDecoderStream を通じて渡すよりも、リクエスト本体をストリーミングするためのより簡単な仕組みが指定されます。

メモ: 本体が null の RequestGET リクエストなど)に対して呼び出された場合、textStream()は有効な空のストリームを返します。

構文

js
textStream()

引数

なし。

返値

ReadableStream です。

例外

TypeError

リクエストの本文が変更中またはロック済みであった場合に発生します。

リクエスト本文のコンテンツをテキストストリームとして読み込む

この例では、リクエスト本文をテキストストリームとして読み込む方法を示しています。

サンプル Request を作成しました。textStream() を使用してその本体の ReadableStream を取得した後、ReadableStream.getReader() を使用して作成したリーダーを介してテキストを読み込みます。

js
const pElem = document.querySelector("p");

const req = new Request("https://example.com", {
  method: "POST",
  body: '{"hello": "world"}',
});

async function streamRequestText(request) {
  const textStream = request.textStream();
  // instead of
  // const textStream = request.body.pipeThrough(new TextDecoderStream());

  const reader = textStream.getReader();

  while (true) {
    const { value, done } = await reader.read();
    if (done) break;
    pElem.textContent += value;
  }
}

streamRequestText(req);

仕様書

仕様書
Fetch
# dom-body-textstream

ブラウザーの互換性

関連情報