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
# ref-for-rbs-controller-enqueue①

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
enqueue

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support

Siehe auch