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
const { readable } = new TransformStream();
const reader = readable.getReader({
mode: 'byob',
});
Attributes
readonly 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.
References
Was this page helpful?