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

View in English Always switch to English

ReadableByteStreamController: close() メソッド

Baseline 2026
Newly available

Since March 2026, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

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

close()ReadableByteStreamController インターフェイスのメソッドで、関連するストリームを閉じます。

これは、そのデータソースが使い果たされたとき/完全に完了したときに、基盤ソースによって呼び出される可能性があります。

メモ: リーダーは、以前にキューに入れられたチャンクをストリームから読み取ることができますが、それらを読み取ってしまうとストリームは閉じられます。 しかし、 close() が呼び出されたときに、未処理で部分的に書き込まれた byobRequest がある場合、ストリームはエラーになります。

構文

js
close()

引数

なし。

返値

なし (undefined)。

例外

TypeError

ソースオブジェクトが ReadableByteStreamController ではないか、何らかの理由でストリームが読み取り可能ではありません。

読み取り可能なバイトストリームの使用 > 読み取り可能なソケットプッシュバイトストリームの作成の例で、データがなくなったときにストリームを閉じています。

関連するコードを下記に示します。 これは readInto() メソッドがデータがまだないときだけ 0 バイトを返すと仮定しています。

js
bytesRead = socket.readInto(v.buffer, v.byteOffset, v.byteLength);
if (bytesRead === 0) {
  controller.close();
}

closeを呼び出すと、ストリームは閉じられ、コンシューマーがあれば通知されます。 例えば ReadableStreamBYOBReader を使用している場合、 read() リクエストは done: true で解決され、 ReadableStreamBYOBReader.closed からのプロミスも解決されます。

仕様書

Specification
Streams
# ref-for-rbs-controller-close①

ブラウザーの互換性

関連情報