TransformStream wird jetzt browserübergreifend unterstützt

Da Umwandlungsstreams jetzt in Chrome, Safari und Firefox unterstützt werden, sind sie endlich einsatzbereit.

Unterstützte Browser

  • Chrome: 67. <ph type="x-smartling-placeholder">
  • Edge: 79. <ph type="x-smartling-placeholder">
  • Firefox: 102 <ph type="x-smartling-placeholder">
  • Safari: 14.1 <ph type="x-smartling-placeholder">

Quelle

Mit der Streams API kannst du eine Ressource, die du empfangen, senden oder in kleine Blöcke umwandeln möchtest, aufschlüsseln und diese Blöcke dann Schritt für Schritt verarbeiten. Kürzlich wurde Firefox 102 Unterstützung von TransformStream, Das bedeutet, dass TransformStream jetzt browserübergreifend nutzbar. Mit Transformationsstreams können Sie eine Pipe aus einem ReadableStream in ein WritableStream, Ausführung eines oder das transformierte Ergebnis direkt nutzen, 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