Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. Web-APIs
  3. WritableStreamDefaultWriter

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.

View in EnglishAlways switch to English

WritableStreamDefaultWriter

Baseline Widely available

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

Hinweis: Diese Funktion ist inWeb Workers verfügbar.

DieWritableStreamDefaultWriter-Schnittstelle derStreams-API ist das Objekt, das vonWritableStream.getWriter() zurückgegeben wird, und sperrt nach der Erstellung den Writer an denWritableStream, um sicherzustellen, dass keine anderen Streams auf das zugrunde liegende Sink schreiben können.

Konstruktor

WritableStreamDefaultWriter()

Erzeugt eine neue Instanz einesWritableStreamDefaultWriter-Objekts.

Instanz-Eigenschaften

WritableStreamDefaultWriter.closedSchreibgeschützt

Ermöglicht es Ihnen, Code zu schreiben, der auf das Ende des Streaming-Prozesses reagiert. Gibt ein Versprechen zurück, das erfüllt wird, wenn der Stream geschlossen wird, oder abgelehnt wird, wenn der Stream fehlerhaft ist oder die Sperre des Writers freigegeben wird.

WritableStreamDefaultWriter.desiredSizeSchreibgeschützt

Gibt die gewünschte Größe zurück, die erforderlich ist, um die interne Warteschlange des Streams zu füllen.

WritableStreamDefaultWriter.readySchreibgeschützt

Gibt einPromise zurück, das aufgelöst wird, wenn die gewünschte Größe der internen Warteschlange des Streams vom nicht positiven Bereich in den positiven Bereich übergeht und signalisiert, dass kein Backpressure mehr angewendet wird.

Instanz-Methoden

WritableStreamDefaultWriter.abort()

Bricht den Stream ab und signalisiert, dass der Produzent nicht mehr erfolgreich in den Stream schreiben kann, und es wird sofort in einen Fehlerzustand überführt, wobei alle aufgestauten Schreibvorgänge verworfen werden.

WritableStreamDefaultWriter.close()

Schließt den zugehörigen beschreibbaren Stream.

WritableStreamDefaultWriter.releaseLock()

Gibt die Sperre des Writers für den entsprechenden Stream frei. Nachdem die Sperre freigegeben wurde, ist der Writer nicht mehr aktiv. Wenn der zugehörige Stream beim Freigeben der Sperre fehlerhaft ist, wird der Writer denselben Fehlerzustand beibehalten; andernfalls wird der Writer als geschlossen angezeigt.

WritableStreamDefaultWriter.write()

Schreibt ein übergebenes Datenstück in einenWritableStream und dessen zugrunde liegendes Sink und gibt einPromise zurück, das die Erfolgs- oder Fehlschlaganzeige des Schreibvorgangs angibt.

Beispiele

Das folgende Beispiel zeigt die Erstellung einesWritableStream mit einem benutzerdefinierten Sink und einer von der API bereitgestellten Warteschlangenstrategie. Es ruft dann eine Funktion namenssendMessage() auf, wobei der neu erstellte Stream und ein String übergeben werden. Innerhalb dieser Funktion wird diegetWriter()-Methode des Streams aufgerufen, die eine Instanz vonWritableStreamDefaultWriter zurückgibt. EinforEach()-Aufruf wird verwendet, um jeden Teil des Strings in den Stream zu schreiben. Schließlich gebenwrite() undclose() Versprechen zurück, die verarbeitet werden, um den Erfolg oder das Scheitern von Teilen und Streams zu behandeln.

js
const list = document.querySelector("ul");async function sendMessage(message, writableStream) {  // defaultWriter is of type WritableStreamDefaultWriter  const defaultWriter = writableStream.getWriter();  const encoder = new TextEncoder();  const encoded = encoder.encode(message);  try {    for (const chunk of encoded) {      await defaultWriter.ready;      await defaultWriter.write(chunk);      console.log("Chunk written to sink.");    }    // Call ready again to ensure that all chunks are written    // before closing the writer.    await defaultWriter.ready;    await defaultWriter.close();    console.log("All chunks written");  } catch (err) {    console.log("Error:", err);  }}const decoder = new TextDecoder("utf-8");const queuingStrategy = new CountQueuingStrategy({ highWaterMark: 1 });let result = "";const writableStream = new WritableStream(  {    // Implement the sink    write(chunk) {      return new Promise((resolve, reject) => {        const buffer = new ArrayBuffer(1);        const view = new Uint8Array(buffer);        view[0] = chunk;        const decoded = decoder.decode(view, { stream: true });        const listItem = document.createElement("li");        listItem.textContent = `Chunk decoded: ${decoded}`;        list.appendChild(listItem);        result += decoded;        resolve();      });    },    close() {      const listItem = document.createElement("li");      listItem.textContent = `[MESSAGE RECEIVED] ${result}`;      list.appendChild(listItem);    },    abort(err) {      console.log("Sink error:", err);    },  },  queuingStrategy,);sendMessage("Hello, world.", writableStream);

Sie können den vollständigen Code in unseremeinfachen Writer-Beispiel finden.

Spezifikationen

Specification
Streams
# default-writer-class

Browser-Kompatibilität

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2026 Movatter.jp