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
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.
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