ReadableStreamBYOBReader
The ReadableStreamBYOBReader API defines a reader for a readable stream. It is designed based on the standard Web API ReadableStreamBYOBReader.
BYOB
is an abbreviation of bring your own buffer. A ReadableStreamBYOBReader object allows to read data from streams and write the read data to the buffer, thereby reducing replicas.Note:
A
ReadableStreamBYOBReader
object cannot be constructed directly. You can use the ReadableStream.getReader method to construct a ReadableStreamBYOBReader
object.Overview
// Use TransformStream to construct a ReadableStream object.const { readable } = new TransformStream();// Use the ReadableStream object to obtain the reader.const reader = readable.getReader({mode: 'byob',});
Attributes
// readable.lockedreadonly locked: boolean;
The locked attribute returns a Promise object. If the stream is closed, the status of the Promise object is
fulfilled
. If an exception occurs on the stream or the lock on the reader is released, the status of the Promise object is rejected
.Methods
read
reader.read(bufferView: ArrayBufferView): Promise<{value: ArrayBufferView, done: boolean}>;
The read() method reads data from the stream and writes the read data to the
bufferView
on the buffer.Note:
You cannot initiate the next stream reading operation until the current stream reading operation ends.
Returned values
The
reader.read
method returns a Promise object that contains the read data and the reading status.If a chunk is available, the Promise object is in the
fulfilled
status and contains an object in the { value: theChunk, done: false }
format.If the stream is closed, the status of the Promise object is switched to
fulfilled
, and an object in the { value: theChunk, done: true }
format is contained.If an exception occurs on the stream, the Promise object is in the
rejected
status, and the relevant error information is included.cancel
reader.cancel(reason?: string): Promise<string>;
The cancel() method closes the stream and ends the reading operation.
releaseLock
reader.releaseLock(): void;
The releaseLock() method cancels the association with the stream and releases the lock on the stream.