WritableStream

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since June 2022.

* Some parts of this feature may have varying levels of support.

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Das WritableStream-Interface der Streams API bietet eine standardisierte Abstraktion zum Schreiben von Streaming-Daten an ein Ziel, bekannt als sink. Dieses Objekt bietet integrierten Rückstau und Warteschlangen.

WritableStream ist ein übertragbares Objekt.

Konstruktor

WritableStream()

Erstellt ein neues WritableStream-Objekt.

Instanzeigenschaften

WritableStream.locked Schreibgeschützt

Ein boolescher Wert, der angibt, ob das WritableStream an einen Writer gebunden ist.

Instanzmethoden

WritableStream.abort()

Bricht den Stream ab, indem signalisiert wird, dass der Produzent nicht mehr erfolgreich in den Stream schreiben kann und dieser sofort in einen Fehlerzustand versetzt wird, wobei alle anstehenden Schreibvorgänge verworfen werden.

WritableStream.close()

Schließt den Stream.

WritableStream.getWriter()

Gibt eine neue Instanz von WritableStreamDefaultWriter zurück und sperrt den Stream für diese Instanz. Solange der Stream gesperrt ist, kann kein anderer Writer erfasst werden, bis dieser freigegeben wird.

Beispiele

Das folgende Beispiel veranschaulicht mehrere Funktionen dieses Interfaces. Es erstellt den WritableStream mit einem benutzerdefinierten Sink. Anschließend wird die getWriter()-Methode des Streams aufgerufen, die eine Instanz von WritableStreamDefaultWriter zurückgibt. Danach werden mehrere Zeichenfolgen in den Stream geschrieben. Schließlich gibt close() ein Promise zurück, das aufgelöst wird, wenn alle Schreibvorgänge erfolgreich abgeschlossen wurden.

js
const writableStream = new WritableStream(
  // Implement the sink
  {
    write(chunk) {
      const textElement = document.getElementById("text-output");
      textElement.textContent += chunk;
    },
  },
);

const writer = writableStream.getWriter();

try {
  writer.write("Hello, ");
  writer.write("world!\n");
  writer.write("This has been a demo!\n");

  await writer.close(); // wait for all chunks to be written
  console.log("All chunks written");
} catch (error) {
  console.error("Stream error: " + error);
}

Dieses Beispiel unterstützt nicht die Rückstau-Funktion der Streams.

Spezifikationen

Specification
Streams
# ws-class

Browser-Kompatibilität

Siehe auch

  • WHATWG Stream Visualizer, für eine grundlegende Visualisierung von lesbaren, schreibbaren und transformierenden Streams.