ReadableStream

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

ReadableStream 对象表示一个可读字节流,用于异步读取数据。 它基于 Web API 标准的 ReadableStream 接口设计。您可以使用 ReadableStream 对象来处理流式数据,例如大型文件下载、视频流等。

获取 ReadableStream 对象

ReadableStream 对象通常作为其他 API 的返回值获取,例如:

  • Response.body 属性返回一个表示响应体的 ReadableStream 对象。
  • TransformStream 的 readable 属性返回一个 ReadableStream 对象。

属性

  • locked (只读)

    一个布尔值,指示流是否被锁定。

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

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

方法

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

getReader

readable.getReader(options?: ReaderOptions): ReadableStreamDefaultReader | ReadableStreamBYOBReader;

创建一个 Reader 对象,并锁定当前流,直到 Reader 调用 releaseLock() 释放锁。

参数:

参数名称 类型 必填 说明
options ReaderOptions 否 生成 Reader 的配置项。

ReaderOptions

属性名 类型 必填 说明
mode string 否 Reader 类型。默认值为 undefined。 如果为 undefined,则创建 ReadableStreamDefaultReader 类型的 Reader;如果为 byob,则创建 ReadableStreamBYOBReader 类型的 Reader。

pipeThrough

readable.pipeThrough(transformStream: TransformStream, options?: PipeToOptions): ReadableStream; 

将当前可读流的数据传输到 transformStream 的 writable 端,并返回 transformStream 的 readable 端。

注意: 在管道传输过程中,当前流的 writable 端会被锁定。

参数:

参数名称 类型 必填 说明
transformStream TransformStream 是 当前流传输到的目标流。
options PipeToOptions 否 流处理配置项。

PipeToOptions

属性名 类型 必填 说明
preventClose boolean 否 若取值为 true,则表示可读流的关闭不会导致可写流关闭。
preventAbort boolean 否 若取值为 true,则表示可读流发生错误不会导致可写流中止。
preventCancel boolean 否 若取值为 true, 则表示可写流的错误不会导致结束可读流。
signal AbortSignal 否 当 signal 被中止时,将中止正在进行的传输。

pipeTo

readable.pipeTo(destination: WritableStream, options?: PipeToOptions): Promise<void>;

将当前可读流传输到 destination 可写流。

注意: 在管道传输过程中,当前流的 destination 会被锁定。

参数:

参数名称 类型 必填 说明
destination WritableStream 是 可写流。
options PipeToOptions 否 流处理配置项。

tee

readable.tee(): [ReadableStream, ReadableStream];

将当前流派生出两个独立的可读流。

cancel

readable.cancel(reason?: string): Promise<string>;

结束当前流。

相关参考

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