ReadableByteStreamController: enqueue() Methode
Hinweis: Dieses Feature ist verfügbar in Web Workers.
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
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):
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