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
# ref-for-rbs-controller-error①

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
error

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support

関連情報