Wiki_JS_Stream - inoueshinichi/Wiki_Web GitHub Wiki
Stream : イベント駆動型非同期制御
- 基底クラス : EventEmitter
- 全体のデータをチャンク(64KB=64*1024ぐらい)に分解したイベント毎にコールバック関数が何度も呼ばれる
参考
Streamの作成手順
- チャンクごとのイベントに対するコールバック関数を定義
- 全体が終了した際の終了イベントのコールバック関数を定義
- 非同期例外が発生した時のイベントのコールバック関数を定義
Streamの種類
- Writable : 書き込み専用Stream
- Readable : 読み込み専用Stream
- Duplex : R/WなStream
- Transform : チャンク毎に変換を挟むStream
イベントの発火と受信
- *.emit() : 発火
- *.on() : 受信
AsyncIterator
for await (const chunk of stream) {
...
}
AsyncGenerator
async function* generator() {
yield ***;
}