read method

The read() method of the ReadableStreamBYOBReader interface is used to read data into a view on a user-supplied buffer from an associated readable byte stream. A request for data will be satisfied from the stream's internal queues if there is any data present. If the stream queues are empty, the request may be supplied as a zero-copy transfer from the underlying byte source.

The method takes as an argument a view on a buffer that supplied data is to be read into, and returns a Promise. The promise fulfills with an object that has properties value and done when data comes available, or if the stream is cancelled. If the stream is errored, the promise will be rejected with the relevant error object.

If a chunk of data is supplied, the value property will contain a new view. This will be a view over the same buffer/backing memory (and of the same type) as the original view passed to the read() method, now populated with the new chunk of data. Note that once the promise fulfills, the original view passed to the method will be detached and no longer usable. The promise will fulfill with a value: undefined if the stream has been cancelled. In this case the backing memory region of view is discarded and not returned to the caller (all previously read data in the view's buffer is lost).

The done property indicates whether or not more data is expected. The value is set true if the stream is closed or cancelled, and false otherwise.

Implementation

external JSPromise<ReadableStreamReadResult> read(
  ArrayBufferView view, [
  ReadableStreamBYOBReaderReadOptions options,
]);