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① |
瀏覽器相容性
載入中…