WritableStreamDefaultWriter: ready-Eigenschaft

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

Die schreibgeschützte Eigenschaft ready des WritableStreamDefaultWriter-Interfaces gibt ein Promise zurück, das aufgelöst wird, wenn sich die gewünschte Größe der internen Warteschlange des Streams von nicht-positiv zu positiv ändert, was signalisiert, dass kein Backpressure mehr angewendet wird.

Wert

Ein Promise.

Beispiele

Das folgende Beispiel zeigt zwei Verwendungen der ready-Eigenschaft. Die erste Verwendung stellt sicher, dass der WritableStream das Schreiben abgeschlossen hat und somit in der Lage ist, Daten zu empfangen, bevor ein binärer Block gesendet wird. Die zweite überprüft ebenfalls, ob der WritableStream das Schreiben abgeschlossen hat, jedoch in diesem Fall, weil das Schreiben abgeschlossen sein muss, bevor der Writer geschlossen werden kann.

js
function sendMessage(message, writableStream) {
  // defaultWriter is of type WritableStreamDefaultWriter
  const defaultWriter = writableStream.getWriter();
  const encoder = new TextEncoder();
  const encoded = encoder.encode(message);
  encoded.forEach((chunk) => {
    // Make sure the stream and its writer are able to
    //   receive data.
    defaultWriter.ready
      .then(() => defaultWriter.write(chunk))
      .then(() => {
        console.log("Chunk written to sink.");
      })
      .catch((err) => {
        console.error(`Chunk error: ${err}`);
      });
    // Call ready again to ensure that all chunks are written
    //   before closing the writer.
    defaultWriter.ready
      .then(() => defaultWriter.close())
      .then(() => {
        console.log("All chunks written");
      })
      .catch((err) => {
        console.error(`Stream error: ${err}`);
      });
  });
}

Spezifikationen

Specification
Streams
# ref-for-default-writer-ready⑨

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
ready

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support