Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2019年1月.
* Some parts of this feature may have varying levels of support.
ReadableStream はストリーム API のインターフェイスで、バイトデータの読み取り可能なストリームを表します。 Fetch API は、 ReadableStream の具体的なインスタンスをResponse オブジェクトの body プロパティを介して提供します。
ReadableStream は移譲可能オブジェクトです。
指定されたハンドラーから読み取り可能なストリームのオブジェクトを作成して返します。
論理値で、読み取り可能なストリームがリーダーにロックされているかどうかを返します。
指定された反復可能オブジェクトまたは非同期反復可能オブジェクト(配列、集合、非同期ジェネレーターなど)から ReadableStream を返します。
ストリームがキャンセルされたときに解決する Promise を返します。このメソッドを呼び出されると、コンシューマーがストリームへの関心を失ったことを通知します。与えられた reason 引数は基になるソースに与えられ、使用する場合と使用しない場合があります。
ReadableStream.getReader()リーダーを作成し、ストリームをロックします。 ストリームがロックされている間は、このリーダーが解放されるまで他のリーダーを取得できません。
ReadableStream.pipeThrough()変換ストリームまたはその他の書き込み可能/読み取り可能なペアを介して、現在のストリームをパイプ接続するチェーン可能な方法を提供します。
ReadableStream.pipeTo()現在の ReadableStream を指定された WritableStream に接続し、 Promise を返します。これはパイピングプロセスが正常に完了したときに履行され、エラーが発生した場合は拒否されます。
ReadableStream.tee()tee メソッドは、この読み取り可能なストリームを tee し、結果の 2 つの分岐を含む 2 要素配列を新しい ReadableStream インスタンスとして返します。 これらの各ストリームは、同じ着信データを受信します。
ReadableStream は非同期反復可能プロトコルを実装しています。 これにより、 for await...of 構文を使用して、ストリーム内のチャンクを非同期に反復処理することができます。
非同期イテレーターは、データがなくなるか、さもなければ終了するまでストリームを消費します。 ループは break、throw、return ステートメントによって早期に終了することもできます。
反復処理中は、他のコンシューマーがリーダーを取得できないようにストリームがロックされます(既にロックされているストリームを反復処理しようとすると TypeError が発生します)。 このロックはループが終了すると解除されます。
既定値では、ループを終了するとストリームも取り消される可能性があり、使用できなくなります。 ループを抜けた後もストリームを使用し続けるには、ストリームの values() メソッドに { preventCancel: true } を渡してください。
次の例では、別のリソースからフェッチした HTML の断片をブラウザーにストリーミングするために、人工的な Response が作成されます。
これは Uint8Array と組み合わせた ReadableStream の使用方法を示しています。
静的な from() メソッドは、イテレーターを変換します。例えば Array や Map, (非同期)イテレーターを読み取り可能なストリームへ変換します。
from() メソッドに対応していないブラウザーでは、代わりに自分自身で独自の読み取り可能なストリームを作成して同じ結果を得ることができます。
この例では、 fetch() レスポンスを処理するために for await...of ループを使用して、到着したチャンクを反復処理する方法を示します。
| Streams # rs-class |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2023年9月24日 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.