ReadableByteStreamController:error() 方法

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

注意:此功能在 Web Workers 中可用。

error() 方法是 ReadableByteStreamController 介面的一部分,它會導致與關聯流的未來互動因指定的錯誤原因而失敗。

這通常由底層源呼叫,以暴露其獲取資料的介面(如檔案讀取或套接字錯誤)中的錯誤。它也可以從其他地方呼叫以觸發流錯誤,例如,如果流依賴的其他系統部分失敗。

語法

js
error(errorObject)

引數

errorObject

任何您希望未來互動失敗的物件。

返回值

無(undefined)。

異常

TypeError

如果源物件不是 ReadableByteStreamController,或者由於其他原因流不可讀,則會丟擲此錯誤。

示例

使用可讀位元組流 > 建立可讀套接字推送位元組流 中的示例展示了當流依賴的其他系統部分失敗時,您可能如何使用 error() 手動觸發流錯誤。

具體來說,底層源的 start() 方法會呼叫 readRepeatedly() 來執行所有設定操作並請求資料。這將返回一個 Promise。如果在讀取資料時丟擲任何錯誤,它們將被鏈式的 catch() 函式捕獲。在 catch() 中,我們然後呼叫控制器上的 error(),並將底層源的錯誤原因傳遞過去。

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

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

規範

規範
Streams
# ref-for-rbs-controller-error①

瀏覽器相容性

另見