ReadableByteStreamController: error() メソッド

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

error()ReadableByteStreamController インターフェイスのメソッドで、関連するストリームとの今後のやり取りを、指定した理由でエラーとします。

これは一般的に、データを取得するインターフェイスからのエラー(ファイル読み込みやソケットエラーなど)を表面化するために、基盤から呼び出されます。 また、例えばストリームが依存しているシステムの別の部分に障害が発生した場合など、ストリームエラーを発生させるために他の場所から呼び出すこともできます。

構文

js
error(errorObject)

引数

errorObject

今後のやり取りを失敗させるための任意のオブジェクトです。

返値

なし (undefined).

例外

TypeError

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

読み取り可能なバイトストリームの使用 > 読み取り可能なソケットプッシュバイトストリームの作成 の例では、error() を使用して、依存しているシステムの別の部分に障害が発生した場合に手動でストリームエラーを発生させる方法を示しています。

具体的には、基盤ソースの start() メソッドは readRepeatedly() を呼び出して、すべてのセットアップ処理を行い、データのリクエストを行います。 これはプロミスを返します。 データを読み込む際に発生したエラーは、連鎖する catch() 関数で捕捉されます。 catch() では、コントローラーの error() を呼び出して、その理由を基盤から渡します。

js
function start(controller) {
  readRepeatedly().catch((e) => controller.error(e));
}

function readRepeatedly() {
  return socket.select2().then(() => {
    // …
  });
}

仕様書

Specification
Streams Standard
# ref-for-rbs-controller-error①

ブラウザーの互換性

BCD tables only load in the browser

関連情報