generated at
Web Streams API
queueを使ってchunk化されたデータを処理する


3種類Streamを繋いで使う

参考
Vercelによるわかりやすい解説







Vercelによる解説
>


例.ts
const decoder = new TextDecoder(); const encoder = new TextEncoder(); const readableStream = new ReadableStream({ start(controller) { const text = "Stream me!"; controller.enqueue(encoder.encode(text)); // queueにいれる controller.close(); }, }); const transformStream = new TransformStream({ transform(chunk, controller) { // データを取り出して、変換して、再度queueにいれる const text = decoder.decode(chunk); controller.enqueue(encoder.encode(text.toUpperCase())); }, }); const writableStream = new WritableStream({ write(chunk) { console.log(decoder.decode(chunk)); // 取り出す }, }); // 呼び出す // pipeThrough, pipeToを使う readableStream .pipeThrough(transformStream) .pipeTo(writableStream); // STREAM ME!
Web Streamはフロー制御を通じてBackpressureを処理する
queueが増えてくるとBackpressure状態にして、producerの生成を遅らせる