ReadableByteStreamController: enqueue() Methode

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Die enqueue() Methode des ReadableByteStreamController Interface stellt ein bestimmtes Chunk in den zugehörigen lesbaren Bytestrom ein (das Chunk wird in die internen Warteschlangen des Streams kopiert).

Dies sollte nur verwendet werden, um Daten in die Warteschlange zu übertragen, wenn byobRequest null ist.

Syntax

js
enqueue(chunk)

Parameter

chunk

Das Chunk, das in die Warteschlange gestellt werden soll.

Rückgabewert

Keiner (undefined).

Ausnahmen

TypeError

Wird ausgelöst, wenn das Quellobjekt kein ReadableByteStreamController ist, der Stream aus einem anderen Grund nicht lesbar ist, das Chunk kein Objekt ist oder dessen internes Array-Buffer nicht existiert, null ist oder getrennt wurde. Wird auch ausgelöst, wenn der Stream geschlossen wurde.

Beispiele

Das Beispiel in Verwendung von lesbaren Bytestreams > Erstellen eines lesbaren Socket-Push-Bytestreams zeigt, wie Sie enqueue() verwenden können, um Daten in den Stream zu kopieren, wenn keine ausstehende byobRequest besteht. Falls es eine byobRequest gibt, sollte diese verwendet werden!

Der untenstehende Code zeigt, wie Daten mit einer "hypothetischen" socket.readInto() Methode in ein ArrayBuffer eingelesen und dann in die Warteschlange gestellt werden (aber nur, wenn tatsächlich Daten kopiert wurden):

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));
}

Spezifikationen

Specification
Streams Standard
# ref-for-rbs-controller-enqueue①

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch