TransformStream wird jetzt browserübergreifend unterstützt

Da Transform-Streams jetzt in Chrome, Safari und Firefox unterstützt werden, ist es endlich soweit!

Unterstützte Browser

  • 67
  • 79
  • 102
  • 14.1

Quelle

Mit der Streams API können Sie eine Ressource, die Sie empfangen, senden oder umwandeln möchten, in kleine Blöcke aufteilen und diese dann Stück für Stück verarbeiten. Seit Kurzem wird in Firefox 102 TransformStream unterstützt. Das bedeutet, dass TransformStream jetzt endlich in Browsern verwendet werden kann. Mit Transformationsstreams können Sie eine Pipe von einer ReadableStream an eine WritableStream senden, eine Transformation für die Blöcke ausführen oder das transformierte Ergebnis direkt verwenden, wie im folgenden Beispiel gezeigt.

class UpperCaseTransformStream {
  constructor() {
    return new TransformStream({
      transform(chunk, controller) {
        controller.enqueue(chunk.toUpperCase());
      },
    });
  }
}

button.addEventListener('click', async () => {
  const response = await fetch('/script.js');
  const readableStream = response.body
    .pipeThrough(new TextDecoderStream())
    .pipeThrough(new UpperCaseTransformStream());

  const reader = readableStream.getReader();
  pre.textContent = '';
  while (true) {
      const { done, value } = await reader.read();
      if (done) {
        break;
      }
      pre.textContent += value;
  }
});

Demo