WritableStreamDefaultWriter.abort()

Baseline 2022

Newly available

Since June 2022, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

WritableStreamDefaultWriter 接口的 abort() 方法用于中止流,表示生产者不能再向流写入数据(会立刻返回一个错误状态),并丢弃所有已入队的数据。

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

语法

js
abort()
abort(reason)

参数

reason 可选

一个字符串,用于提供人类可读的中止原因。

返回值

一个 Promise,会在成功时用给定的 reason 参数兑现。

异常

TypeError

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

示例

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

...

const writer = writableStream.getWriter();

...

// abort the stream when desired
writer.abort.then((reason) => {
  console.log(reason);
})

规范

Specification
Streams Standard
# ref-for-default-writer-abort④

浏览器兼容性

BCD tables only load in the browser