WritableStreamDefaultWriter:abort() 方法

Baseline 已广泛支持

此功能已成熟,并可在许多设备和浏览器版本上使用。自 2022 年 5 月以来,它已在各个浏览器中可用。

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

abort() 方法是 WritableStreamDefaultWriter 接口的一部分,它会中止流,通知生产者无法再成功地向流写入数据,流将立即进入错误状态,并丢弃所有排队的写入操作。

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

语法

js
abort()
abort(reason)

参数

reason 可选

一个字符串,表示中止的可读原因。

返回值

一个 Promise,当流被中止时,它会解析为 undefined;如果写入器未处于活动状态或接收流无效,则会拒绝并带有一个错误。

异常

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: ...");

规范

规范
Streams
# ref-for-default-writer-abort④

浏览器兼容性