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 der ReadableByteStreamController
-Schnittstelle stellt ein gegebenes Datenstück in den zugehörigen lesbaren Bytestrom in die Warteschlange (das Datenstück wird in die internen Warteschlangen des Streams übertragen).
Dies sollte nur verwendet werden, um Daten in die Warteschlange zu übertragen, wenn byobRequest
null
ist.
Syntax
enqueue(chunk)
Parameter
chunk
-
Das Datenstück, das in die Warteschlange gestellt wird.
Rückgabewert
Keiner (undefined
).
Ausnahmen
TypeError
-
Wird ausgelöst, wenn das Quellobjekt kein
ReadableByteStreamController
ist, oder der Stream aus einem anderen Grund nicht gelesen werden kann, oder das Datenstück kein Objekt ist, oder der interne Array-Puffer des Datenstücks nicht existiert, null oder abgetrennt ist. Es 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 kein ausstehender byobRequest
vorhanden ist.
Wenn ein byobRequest
vorliegt, sollte dieser verwendet werden!
Der folgende Code zeigt, wie Daten mittels einer "hypothetischen" socket.readInto()
-Methode in einen ArrayBuffer
gelesen 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> # ref-for-rbs-controller-enqueue①> |
Browser-Kompatibilität
Loading…