| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/API/WritableStreamDefaultWriter | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit Mai 2022 browserbergreifend verfgbar.
Hinweis: Diese Funktion ist in Web Workers verfgbar.
Die WritableStreamDefaultWriter-Schnittstelle der Streams-API ist das Objekt, das von WritableStream.getWriter() zurckgegeben wird, und sperrt nach der Erstellung den Writer an den WritableStream, um sicherzustellen, dass keine anderen Streams auf das zugrunde liegende Sink schreiben knnen.
WritableStreamDefaultWriter()Erzeugt eine neue Instanz eines WritableStreamDefaultWriter-Objekts.
WritableStreamDefaultWriter.closed SchreibgeschtztErmglicht es Ihnen, Code zu schreiben, der auf das Ende des Streaming-Prozesses reagiert. Gibt ein Versprechen zurck, das erfllt wird, wenn der Stream geschlossen wird, oder abgelehnt wird, wenn der Stream fehlerhaft ist oder die Sperre des Writers freigegeben wird.
WritableStreamDefaultWriter.desiredSize SchreibgeschtztGibt die gewnschte Gre zurck, die erforderlich ist, um die interne Warteschlange des Streams zu fllen.
WritableStreamDefaultWriter.ready SchreibgeschtztGibt ein Promise zurck, das aufgelst wird, wenn die gewnschte Gre der internen Warteschlange des Streams vom nicht positiven Bereich in den positiven Bereich bergeht und signalisiert, dass kein Backpressure mehr angewendet wird.
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 berfhrt, wobei alle aufgestauten Schreibvorgnge verworfen werden.
WritableStreamDefaultWriter.close()Schliet den zugehrigen beschreibbaren Stream.
WritableStreamDefaultWriter.releaseLock()Gibt die Sperre des Writers fr den entsprechenden Stream frei. Nachdem die Sperre freigegeben wurde, ist der Writer nicht mehr aktiv. Wenn der zugehrige 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 Datenstck in einen WritableStream und dessen zugrunde liegendes Sink und gibt ein Promise zurck, das die Erfolgs- oder Fehlschlaganzeige des Schreibvorgangs angibt.
Das folgende Beispiel zeigt die Erstellung eines WritableStream mit einem benutzerdefinierten Sink und einer von der API bereitgestellten Warteschlangenstrategie. Es ruft dann eine Funktion namens sendMessage() auf, wobei der neu erstellte Stream und ein String bergeben werden. Innerhalb dieser Funktion wird die getWriter()-Methode des Streams aufgerufen, die eine Instanz von WritableStreamDefaultWriter zurckgibt. Ein forEach()-Aufruf wird verwendet, um jeden Teil des Strings in den Stream zu schreiben. Schlielich geben write() und close() Versprechen zurck, die verarbeitet werden, um den Erfolg oder das Scheitern von Teilen und Streams zu behandeln.
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 knnen den vollstndigen Code in unserem einfachen Writer-Beispiel finden.
| Spezifikation |
|---|
| Streams # default-writer-class |
WritableStreamDefaultWriterByteLengthQueuingStrategyCountQueuingStrategyReadableByteStreamControllerReadableStreamReadableStreamBYOBReaderReadableStreamBYOBRequestReadableStreamDefaultControllerReadableStreamDefaultReaderResponse.bodyTransformStreamTransformStreamDefaultControllerWindow.fetch()WritableStreamWritableStreamDefaultControllerDer Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |