この投稿では、Node.jsのstream.Readable
の内容を全部読み込む方法を紹介します。
stream.Readableを全部読み込む方法
for await
を使う方法がシンプルです。
const{Readable}=require('stream')conststream=Readable.from(['hello','world'])asyncfunctionreadAll(stream){letdata=''forawait(constchunkofstream){data+=chunk}returndata}readAll(stream).then(console.log)//=> "helloworld"
イベント駆動なコード
よく見かける方法として、Readable
の"data"
イベントを使うコードがあります:
const{Readable}=require('stream')conststream=Readable.from(['hello','world'])functionreadAll(stream){returnnewPromise(resolve=>{letdata=''stream.on('data',chunk=>{data+=chunk})stream.on('end',()=>resolve(data))})}readAll(stream).then(console.log)//=> "helloworld"
これでも同じ結果が得られますが、for await
を使ったほうが個人的に読みやすいと思います。