ReadableStream

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

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

获取 ReadableStream 对象

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

  • Response.body 属性返回一个表示响应体的 ReadableStream 对象。
  • TransformStreamreadable 属性返回一个 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; 

将当前可读流的数据传输到 transformStreamwritable 端,并返回 transformStreamreadable 端。

注意: 在管道传输过程中,当前流的 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>;

结束当前流。

相关参考

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