本稿では、どのようにしてNode.jsのstream.Readableを作ったらいいかを示す。
stream.Readableを作るサンプルコード
const { Readable } = require('stream')
const stream = Readable.from(['hello'])
stream.pipe(process.stdout)
実行結果
hello
説明
Readable.fromメソッドはReadableオブジェクトを生成するユーティリティメソッドで、第一引数にIterable<any>またはAsyncIterable<any>を取る。
上のサンプルコードではArray<string>を渡しているが、Iterableは反復処理プロトコルを実装しているオブジェクトなら何でもいいので、配列の他にジェネレーターを渡すこともできる:
const gen = function *() {
yield 'hello'
yield 'world'
}
const stream = Readable.from(gen())