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① |
浏览器兼容性
加载中…