更新时间:2024-08-14 19:50:28
ReadableStream 对象表示一个可读字节流,用于异步读取数据。 它基于 Web API 标准的 ReadableStream 接口设计。您可以使用 ReadableStream 对象来处理流式数据,例如大型文件下载、视频流等。
ReadableStream 对象通常作为其他 API 的返回值获取,例如:
Response.body 属性返回一个表示响应体的 ReadableStream 对象。TransformStream 的 readable 属性返回一个 ReadableStream 对象。locked (只读)
一个布尔值,指示流是否被锁定。
说明:
流在以下情况下处于锁定状态:
releaseLock() 方法之前,该流将一直处于锁定状态。注意: 使用以下所有方法时,要求当前流处于未锁定状态,否则会抛出异常。
readable.getReader(options?: ReaderOptions): ReadableStreamDefaultReader | ReadableStreamBYOBReader;
创建一个 Reader 对象,并锁定当前流,直到 Reader 调用 releaseLock() 释放锁。
参数:
| 参数名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
options |
ReaderOptions |
否 | 生成 Reader 的配置项。 |
ReaderOptions
| 属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|
mode |
string |
否 | Reader 类型。默认值为 undefined。 如果为 undefined,则创建 ReadableStreamDefaultReader 类型的 Reader;如果为 byob,则创建 ReadableStreamBYOBReader 类型的 Reader。 |
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 被中止时,将中止正在进行的传输。 |
readable.pipeTo(destination: WritableStream, options?: PipeToOptions): Promise<void>;
将当前可读流传输到 destination 可写流。
注意: 在管道传输过程中,当前流的 destination 会被锁定。
参数:
| 参数名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
destination |
WritableStream |
是 | 可写流。 |
options |
PipeToOptions |
否 | 流处理配置项。 |
readable.tee(): [ReadableStream, ReadableStream];
将当前流派生出两个独立的可读流。
readable.cancel(reason?: string): Promise<string>;
结束当前流。