ตอนนี้ Chrome, Safari และ Firefox รองรับสตรีมการแปลงแล้ว จึงพร้อมใช้งานอย่างเต็มที่
Streams API ช่วยให้คุณแบ่งทรัพยากรที่ต้องการรับ ส่ง หรือแปลงเป็นก้อนเล็กๆ แล้วประมวลผลก้อนเหล่านั้นทีละก้อนได้ เมื่อเร็วๆ นี้ Firefox 102
เริ่มรองรับ TransformStream
ซึ่งหมายความว่าตอนนี้คุณสามารถใช้ TransformStream
ในเบราว์เซอร์ต่างๆ ได้แล้ว Transform Streams ช่วยให้คุณส่งข้อมูลจาก
ReadableStream
ไปยัง
WritableStream
ได้ โดยจะดำเนินการ
การเปลี่ยนรูปแบบในก้อนข้อมูล หรือใช้ผลลัพธ์ที่เปลี่ยนรูปแบบแล้วโดยตรง
ดังที่แสดงในตัวอย่างต่อไปนี้
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;
}
});