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
ReadableByteStreamControllerist, 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…