Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

ReadableStream

最終更新 Markdown で表示Agent セットアップ

背景

ReadableStream は、TransformStream 内の readable プロパティから返されます。

プロパティ

  • locked boolean
    • 読み取り可能なストリームがリーダーにロックされているかどうかを示す Boolean 値です。

メソッド

  • pipeTo(destinationWritableStream, optionsPipeToOptions) : Promise<void>

    • 読み取り可能なストリームを指定の書き込み可能なストリーム destination へパイプします。write 操作が成功すると履行される Promise を返し、失敗すると拒否します。
  • pipeThrough(transformStream, optionsPipeToOptions) : ReadableStream

    • 読み取り可能なストリームを、指定の TransformStream の書き込み側へパイプし、変換後の読み取り側を返します。呼び出しを連鎖できます。optionspipeTo() と同じ値を受け付けます。
  • getReader(optionsObject) : ReadableStreamDefaultReader

    • ReadableStreamDefaultReader のインスタンスを取得し、そのリーダーインスタンスに ReadableStream をロックします。このメソッドはオプションを示すオブジェクト引数を受け付けます。対応しているオプションは mode のみです。byob に設定すると、次のように ReadableStreamBYOBReader を作成できます。
let reader = readable.getReader({ mode: 'byob' });
  • cancel(reasonstringoptional) : Promise<void>

    • ストリームをキャンセルします。reason はキャンセル理由を示す、省略可能な人が読める文字列です。reason は基盤ソースの cancel アルゴリズムに渡されます。まだ読んでいないデータは失われます。
  • tee() : [ReadableStream, ReadableStream]

    • ストリームをロックし、元のストリームと同じデータを読む 2 つの新しい ReadableStream インスタンスの配列を返します。基盤ソースへのバックプレッシャーは、未読データがより多い分岐に従います。一方の分岐がもう一方より遅く読んでも、基盤ソースがバックプレッシャーに応える限り、無制限のバッファリングを避けられます。実装の詳細は workerd の Streams ドキュメント を参照してください。
  • 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);
}

PipeToOptions

  • preventClose bool

    • true のとき、ソース ReadableStream のクローズは、宛先 WritableStream のクローズを引き起こしません。
  • preventAbort bool

    • true のとき、ソース ReadableStream のエラーは、宛先 WritableStream を中止しなくなります。pipeTo は、ソースのエラー、または宛先の中止中に起きたエラーで拒否された Promise を返します。

静的メソッド

  • ReadableStream.from(asyncIterable) : ReadableStream

    • asyncIterable が生成する値をチャンクとする新しい ReadableStream を作成します。asyncIterable は、非同期ジェネレーターを含む任意のイテラブルまたは非同期イテラブルです。
const stream = ReadableStream.from(
	(async function* () {
		yield "hello ";
		yield "world";
	})(),
);
const stream = ReadableStream.from(
  (async function* () {
    yield 'hello ';
    yield 'world';
  })()
);

関連リソース

役に立ちましたか?