Karena sekarang streaming transformasi didukung di Chrome, Safari, dan Firefox, streaming transformasi ini pun akhirnya siap digunakan.
Streams API memungkinkan Anda memecah resource yang ingin Anda terima, kirim, atau ubah menjadi potongan-potongan kecil, lalu proses potongan tersebut sedikit demi bit. Baru-baru ini, Firefox 102
mulai mendukung TransformStream
,
yang berarti TransformStream
sekarang menjadi
akhirnya dapat digunakan di seluruh {i>browser<i}. Dengan streaming transformasi, Anda dapat melakukan pipe dari
ReadableStream
ke
WritableStream
, menjalankan
transformasi pada potongan, atau langsung
memakai hasil yang ditransformasi,
seperti yang ditunjukkan dalam contoh berikut.
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;
}
});