WritableStreamDefaultWriter: abort() 方法

基线 2022

新可用

2022 年 6 月起,此功能在最新的设备和浏览器版本中均可使用。此功能可能在旧版设备或浏览器中无法使用。

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

abort() 方法是 WritableStreamDefaultWriter 接口的方法,用于中止流,表明生产者无法再成功写入流,并且流将立即变为错误状态,并且任何排队的写入都将被丢弃。

如果写入器处于活动状态,则 abort() 方法的行为与关联流 (WritableStream.abort()) 的行为相同。如果不是,则返回一个被拒绝的 Promise。

语法

js
abort()
abort(reason)

参数

reason 可选

表示中止原因的人类可读字符串。

返回值

一个 Promise,当流被中止时,该 Promise 将 fulfilled 为 undefined,如果写入器处于非活动状态或接收器流无效,则该 Promise 将 rejected 并带有错误。

异常

TypeError

您尝试中止的流不是 WritableStream,或者它已被锁定。

示例

js
const writableStream = new WritableStream(
  {
    write(chunk) {
      // ...
    },
    close() {
      // ...
    },
    abort(err) {
      // ...
    },
  },
  queuingStrategy,
);

// ...

const writer = writableStream.getWriter();

// ...

// abort the stream when desired
await writer.abort("WritableStream aborted. Reason: ...");

规范

规范
流标准
# ref-for-default-writer-abort④

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。