ReadableByteStreamController: close()-Methode
Baseline
2026
Neu verfügbar
Seit März 2026 funktioniert diese Funktion auf aktuellen Geräten und in aktuellen Browserversionen. Auf älteren Geräten oder in älteren Browsern funktioniert sie möglicherweise nicht.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die close()-Methode der ReadableByteStreamController-Schnittstelle schließt den zugehörigen Stream.
Dies könnte von der zugrunde liegenden Quelle aufgerufen werden, wenn ihre Datenquelle erschöpft/abgeschlossen ist.
Hinweis:
Leser können immer noch alle zuvor eingereihten Chunks aus dem Stream lesen, aber sobald diese gelesen sind, wird der Stream geschlossen.
Wenn jedoch eine ausstehende und teilweise geschriebene byobRequest vorhanden ist, wenn close() aufgerufen wird, wird der Stream einen Fehler aufweisen.
Syntax
close()
Parameter
Keine.
Rückgabewert
Keiner (undefined).
Ausnahmen
TypeError-
Wird ausgelöst, wenn das Quellobjekt kein
ReadableByteStreamControllerist, es bereits geschlossen ist oder der Stream aus einem anderen Grund nicht lesbar ist.
Beispiele
Das Beispiel in Verwendung von lesbaren Byte-Streams > Erstellen eines lesbaren Socket-Push-Byte-Streams zeigt, wie wir den Stream möglicherweise schließen, wenn keine Daten mehr vorhanden sind.
Der relevante Code ist unten wiedergegeben.
Dies hängt davon ab, dass die hypothetische readInto()-Methode 0 Bytes zurückgibt, nur wenn keine Daten mehr vorhanden sind.
bytesRead = socket.readInto(v.buffer, v.byteOffset, v.byteLength);
if (bytesRead === 0) {
controller.close();
}
Nach dem Aufruf von close wird der Stream geschlossen und alle Verbraucher werden benachrichtigt.
Zum Beispiel würde, wenn ein ReadableStreamBYOBReader verwendet wird, jede read()-Anfrage mit done: true aufgelöst und das Versprechen von ReadableStreamBYOBReader.closed würde ebenfalls aufgelöst.
Spezifikationen
| Spezifikation |
|---|
| Streams> # ref-for-rbs-controller-close①> |