ReadableStream: pipeTo() Methode

Baseline Widely available

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

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

Die pipeTo()-Methode der ReadableStream-Schnittstelle leitet den aktuellen ReadableStream zu einem angegebenen WritableStream und gibt ein Promise zurück, das erfüllt wird, wenn der Piping-Prozess erfolgreich abgeschlossen ist, oder abgelehnt wird, wenn Fehler aufgetreten sind.

Das Piping eines Streams wird ihn in der Regel für die Dauer des Pipes sperren, was verhindert, dass andere Leser ihn sperren können.

Syntax

js
pipeTo(destination)
pipeTo(destination, options)

Parameter

destination

Ein WritableStream, der als endgültiges Ziel für den ReadableStream dient.

options Optional

Die Optionen, die beim Piping zu dem writable Stream verwendet werden sollen. Verfügbare Optionen sind:

preventClose

Wenn dies auf true gesetzt ist, wird das Schließen des Quell-ReadableStream den Ziel-WritableStream nicht mehr schließen. Die Methode wird ein erfülltes Versprechen zurückgeben, sobald dieser Prozess abgeschlossen ist, es sei denn, beim Schließen des Ziels tritt ein Fehler auf, in diesem Fall wird es mit diesem Fehler abgelehnt.

preventAbort

Wenn dies auf true gesetzt ist, werden Fehler im Quell-ReadableStream nicht mehr den Ziel-WritableStream abbrechen. Die Methode wird ein mit dem Fehler der Quelle abgelehntes Versprechen zurückgeben oder mit jedem Fehler, der beim Abbrechen des Ziels auftritt.

preventCancel

Wenn dies auf true gesetzt ist, werden Fehler im Ziel-WritableStream nicht mehr den Quell-ReadableStream abbrechen. In diesem Fall wird die Methode ein mit dem Fehler der Quelle abgelehntes Versprechen zurückgeben oder mit jedem Fehler, der beim Abbrechen der Quelle auftritt. Zusätzlich, wenn der Zielschreibstream geschlossen oder schließend ist, wird der Quelllesestream nicht mehr abgebrochen. In diesem Fall wird die Methode ein Versprechen mit einem Fehler zurückgeben, der anzeigt, dass das Piping zu einem geschlossenen Stream fehlgeschlagen ist, oder mit jedem Fehler, der beim Abbrechen der Quelle auftritt.

signal

Wenn auf ein AbortSignal-Objekt gesetzt, können laufende Pipe-Operationen über den entsprechenden AbortController abgebrochen werden.

Rückgabewert

Ein Promise, das aufgelöst wird, wenn der Piping-Prozess abgeschlossen ist.

Ausnahmen

TypeError

Die writableStream- und/oder readableStream-Objekte sind kein schreibbarer/lesbarer Stream, oder einer oder beide Streams sind gesperrt.

Beispiele

js
// Fetch the original image
fetch("png-logo.png")
  // Retrieve its body as ReadableStream
  .then((response) => response.body)
  .then((body) => body.pipeThrough(new PNGTransformStream()))
  .then((rs) => rs.pipeTo(new FinalDestinationStream()));

Dasselbe Beispiel, aber mit await:

js
(async () => {
  // Fetch the original image
  const response = await fetch("png-logo.png");
  // Retrieve its body as ReadableStream
  await response.body
    .pipeThrough(new PNGTransformStream())
    .pipeTo(new FinalDestinationStream());
})();

Spezifikationen

Specification
Streams
# ref-for-rs-pipe-to④

Browser-Kompatibilität

Siehe auch