Strumienie przekształceń są obsługiwane w Chrome, Safari i Firefoksie, więc są w końcu gotowe do działania.
Interfejs Streams API umożliwia podzielenie zasobu, który chcesz otrzymać, wysłać lub przekształcić, na małe fragmenty, a następnie przetwarzanie tych fragmentów bit po bicie. Niedawno Firefox 102 zaczął obsługiwać TransformStream
, co oznacza, że TransformStream
można teraz używać we wszystkich przeglądarkach. Strumienie transformacji umożliwiają przesyłanie danych z ReadableStream
do WritableStream
, przeprowadzanie na nich transformacji lub bezpośrednie wykorzystywanie wyników transformacji, jak w przykładzie poniżej.
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; } });