W3cubDocs

/Web APIs

ReadableByteStreamController: enqueue() method

The enqueue() method of the ReadableByteStreamController interface enqueues a given chunk on the associated readable byte stream (the chunk is copied into the stream's internal queues).

This should only be used to transfer data to the queue when byobRequest is null.

Syntax

js

enqueue(chunk)

Parameters

chunk

The chunk to enqueue.

Return value

None (undefined).

Exceptions

TypeError

Thrown if the source object is not a ReadableByteStreamController, or the stream cannot be read for some other reason, or the chunk is not an object, or the chunk's internal array buffer is non-existent, zero-length, or detached. It is also thrown if the stream has been closed.

Examples

The example in Using readable byte streams > Creating a readable socket push byte stream shows how you can use enqueue() to copy data to the stream if there is no outstanding byobRequest. If there is a byobRequest then it should be used!

The code below shows data being read into an ArrayBuffer using a "hypothetical" socket.readInto() method and then enqueued (but only if data was actually copied):

js

const buffer = new ArrayBuffer(DEFAULT_CHUNK_SIZE);
bytesRead = socket.readInto(buffer, 0, DEFAULT_CHUNK_SIZE);
if (bytesRead === 0) {
  controller.close();
} else {
  controller.enqueue(new Uint8Array(buffer, 0, bytesRead));
}

Specifications

Browser compatibility

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet
enqueue 89 89 102 No 75 No 89 89 102 63 No 15.0

See also

© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/ReadableByteStreamController/enqueue