更新时间: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>;
结束当前流。