有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
ReadableStream 可读流,也称为可读端,基于 Web APIs 标准 ReadableStream 进行设计。
注意
不支持直接构造 ReadableStream 对象,使用 TransformStream 构造得到。

描述

// 使用 TransformStream 构造得到 ReadableStream 对象
const { readable } = new TransformStream();

属性

// readable.locked
readonly locked: boolean;
标识流是否锁定。
说明
流处于锁定状态的情况有:
一个流最多有一个激活的 reader,在 reader调用 releaseLock() 方法前,该流均处于锁定状态。
流处于管道传输中,会处于锁定状态,直至管道传输结束。

方法

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

getReader

readable.getReader(options?: ReaderOptions): ReadableStreamDefaultReader | ReadableStreamBYOBReader;
创建一个 Reader, 并锁定当前流,直至 Reader 调用 releaseLock() 释放锁。

参数

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

ReaderOptions

ReaderOptions 对象属性如下所示。
属性名
类型
必填
说明
mode
string
Reader 类型,默认值为 undefined,取值说明如下。
undefined
创建 ReadableStreamDefaultReader 类型的 Reader。
byob
创建 ReadableStreamBYOBReader 类型的 Reader。

pipeThrough

readable.pipeThrough(transfromStream: TransfromStream, options?: PipeToOptions): ReadableStream;
流的管道处理。将当前可读流数据传输到参数 transfromStream 的 writable 端,并返回 transfromStream 的 readable 端。
注意
在管道传输过程中,会对当前流 writable 端进行锁定。

参数

参数名称
类型
必填
说明
transfromStream
当前流传输到的目标对象。
options
流处理配置项。

PipeToOptions

流处理配置项如下所示:
属性名
类型
必填
说明
preventClose
boolean
取值 true时,表示可读流的关闭,不会导致可写流关闭。
preventAbort
boolean
取值 true时,表示可读流发生错误,不会导致可写流中止。
preventCancel
boolean
取值 true时,表示可写流的错误,不会导致结束可读流。
signal
signal被 abort 时,将会中止正在进行的传输。

pipeTo

readable.pipeTo(destination: WritableStream, options?: PipeToOptions): Promise<void>;
流的管道处理,将当前可读流传输到 destination 可写流。
注意
在管道传输过程中,会对当前流 destination 进行锁定。

参数

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

tee

readable.tee(): [ReadableStream, ReadableStream];
将当前流派发出两个独立的可读流。

cancel

readable.cancel(reason?: string): Promise<string>;
结束当前流。

相关参考