WritableStream

更新时间:2024-08-14 19:50:29

WritableStream 接口表示可写的数据流,也称为可写端。它基于 Web APIs 标准 WritableStream 接口设计,可以在 Edge Cloud Apps 函数中使用。

注意: 不支持直接构造 WritableStream 对象,需使用 TransformStream 构造获取。

描述

WritableStream 表示一个用于写入数据的目标。它提供了用于写入数据块、关闭流和中止流的方法。

您可以从 TransformStream 获取 WritableStream 对象,如下所示:

const { readable, writable } = new TransformStream();

属性

locked

  • 类型: boolean (只读)
  • 描述: 指示可写流是否已锁定到 writer。

流在以下情况下处于锁定状态:

  • 一个流最多只能有一个活动的 writer。在 writer 调用 releaseLock() 方法之前,该流将一直处于锁定状态。
  • 流在管道传输过程中处于锁定状态,直到管道传输结束。

highWaterMark

  • 类型: number (只读)
  • 描述: 表示可写缓冲区的大小(以字节为单位)。默认值为 32KB,最大值为 256KB。如果值超过最大值,它将自动调整为 256KB。

方法

注意: 以下所有方法的使用都要求当前流处于未锁定状态,否则会抛出异常。

getWriter()

writable.getWriter(): WritableStreamDefaultWriter;

返回值: 返回一个 WritableStreamDefaultWriter 对象。

描述: 创建一个 writer,并锁定当前流,直到 writer 调用 releaseLock() 方法释放锁。

close()

writable.close(): Promise<void>;

描述: 关闭当前流。

abort()

writable.abort(reason?: string): Promise<string>;

参数:

  • reason (可选): 一个字符串,表示中止流的原因。

描述: 中止当前流。

示例代码

WritableStream 对象通常作为 TransformStreamwritable 属性获取。将 ReadableStream 管道传输到 WritableStream 是写入数据的常见方式。

readableStream
  .pipeTo(writableStream)
  .then(() => console.log('所有数据已成功写入!'))
  .catch(e => console.error('发生错误!', e));

要直接写入 WritableStream,您必须使用其 writer。

const writer = writableStream.getWriter();
writer.write(data);

相关参考

本篇文档内容对您是否有帮助?
有帮助
我要反馈
提交成功!非常感谢您的反馈,我们会继续努力做到更好!