
160
6
章 オブジェクト指向デザインパターンの
Node.js
への適用
ticker
のオブジェクトは、他のイベント発生クラスをもとにしたオブジェクトと同じように使え、
メソッド
on
を使えばいくつでもリスナーをアタッチできるのですが、この例では、メソッド
emit
を使
おうとするとエラー「
TypeError: ticker.emit is not a function
」が引き起こされてコード
は失敗します。
この例は公開コンストラクタのパターンの使い方を示すのにとても役立っていますが、こ
のイベントエミッタの読み出し専用機能の堅牢さは完璧ではなく、回避する方法がいく
つかあります。たとえば、次のようにオリジナルの
emit
のプロトタイプを直接使えば、
ticker
のインスタンスにイベントを発生させることができます。
require('events').prototype.emit.call(ticker, 'someEvent', {});
6.2.2
実践での利用
このパターンはとても興味深いもので賢くできていますが、
Promise
のコンストラクタを除けば一
般的なユースケースを探すことは非常に困難です。
ただし、現在用いられているテンプレートパターンをよりよいものに置き換え、さまざまなストリー
ムのオブジェクトの振る舞いを記述可能にしようと、このパターンを適用したストリームの新たな仕
様が開発中であることは、
触れておくべきことでしょう。次のサイトを参照してください
−
https://
streams.spec.whatwg.org ...