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①

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅