ReadableByteStreamController: close() Methode

Hinweis: Dieses Feature ist verfügbar in Web Workers.

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 weiterhin 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 besteht, wenn close() aufgerufen wird, wird der Stream fehlerhaft.

Syntax

js
close()

Parameter

Keine.

Rückgabewert

Keiner (undefined).

Ausnahmen

TypeError

Wird ausgelöst, wenn das Quellobjekt kein ReadableByteStreamController ist, 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 schließen könnten, wenn keine Daten mehr vorhanden sind.

Der relevante Code ist unten reproduziert. Dies basiert darauf, dass die hypothetische readInto() Methode nur dann 0 Bytes zurückgibt, wenn keine Daten mehr vorhanden sind.

js
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 benachrichtigt. Zum Beispiel würden bei Verwendung eines ReadableStreamBYOBReader alle read() Anfragen mit done: true aufgelöst und das Versprechen von ReadableStreamBYOBReader.closed würde ebenfalls aufgelöst.

Spezifikationen

Specification
Streams Standard
# ref-for-rbs-controller-close①

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch