ReadableStream は、TransformStream 内の readable プロパティから返されます。
lockedboolean- 読み取り可能なストリームがリーダーにロックされているかどうかを示す Boolean 値です。
-
pipeTo(destinationWritableStream, optionsPipeToOptions): Promise<void>- 読み取り可能なストリームを指定の書き込み可能なストリーム
destinationへパイプします。write操作が成功すると履行される Promise を返し、失敗すると拒否します。
- 読み取り可能なストリームを指定の書き込み可能なストリーム
-
pipeThrough(transformStream, optionsPipeToOptions): ReadableStream- 読み取り可能なストリームを、指定の
TransformStreamの書き込み側へパイプし、変換後の読み取り側を返します。呼び出しを連鎖できます。optionsはpipeTo()と同じ値を受け付けます。
- 読み取り可能なストリームを、指定の
-
getReader(optionsObject): ReadableStreamDefaultReaderReadableStreamDefaultReaderのインスタンスを取得し、そのリーダーインスタンスにReadableStreamをロックします。このメソッドはオプションを示すオブジェクト引数を受け付けます。対応しているオプションはmodeのみです。byobに設定すると、次のようにReadableStreamBYOBReaderを作成できます。
let reader = readable.getReader({ mode: 'byob' });-
cancel(reasonstringoptional): Promise<void>- ストリームをキャンセルします。
reasonはキャンセル理由を示す、省略可能な人が読める文字列です。reasonは基盤ソースの cancel アルゴリズムに渡されます。まだ読んでいないデータは失われます。
- ストリームをキャンセルします。
-
tee(): [ReadableStream, ReadableStream]- ストリームをロックし、元のストリームと同じデータを読む 2 つの新しい
ReadableStreamインスタンスの配列を返します。基盤ソースへのバックプレッシャーは、未読データがより多い分岐に従います。一方の分岐がもう一方より遅く読んでも、基盤ソースがバックプレッシャーに応える限り、無制限のバッファリングを避けられます。実装の詳細は workerd の Streams ドキュメント ↗ を参照してください。
- ストリームをロックし、元のストリームと同じデータを読む 2 つの新しい
-
values(optionsObject): AsyncIterableIterator- ストリームのチャンクを読んで消費する非同期イテレーターを返します。このメソッドはオプションを示すオブジェクト引数を受け付けます。対応しているオプションは
preventCancelのみです。trueのとき、イテレーターが途中で終了しても(break文など)ストリームはキャンセルされません。ReadableStreamは次のように直接非同期イテレートもできます。
- ストリームのチャンクを読んで消費する非同期イテレーターを返します。このメソッドはオプションを示すオブジェクト引数を受け付けます。対応しているオプションは
for await (const chunk of readable) {
console.log(chunk);
}for await (const chunk of readable) {
console.log(chunk);
}-
preventClosebooltrueのとき、ソースReadableStreamのクローズは、宛先WritableStreamのクローズを引き起こしません。
-
preventAbortbooltrueのとき、ソースReadableStreamのエラーは、宛先WritableStreamを中止しなくなります。pipeToは、ソースのエラー、または宛先の中止中に起きたエラーで拒否された Promise を返します。
-
ReadableStream.from(asyncIterable): ReadableStreamasyncIterableが生成する値をチャンクとする新しいReadableStreamを作成します。asyncIterableは、非同期ジェネレーターを含む任意のイテラブルまたは非同期イテラブルです。
const stream = ReadableStream.from(
(async function* () {
yield "hello ";
yield "world";
})(),
);const stream = ReadableStream.from(
(async function* () {
yield 'hello ';
yield 'world';
})()
);