著者はCOVID-19救済基金を選択し、 Write forDOnationsプログラムの一環として寄付を受け取りました。

序章

イベントエミッターは、 Node.js 内のオブジェクトであり、アクションが完了したことを通知するメッセージを送信することでイベントをトリガーします。 JavaScript 開発者は、イベントエミッターからイベントをリッスンするコードを記述して、それらのイベントがトリガーされるたびに関数を実行できるようにします。 このコンテキストでは、イベントは、識別文字列とリスナーに渡す必要のあるデータで構成されます。

通常、Node.jsでは、別のアクションの完了時にアクションを発生させたい場合、コールバックのネストやPromiseのチェーンなどの非同期プログラミング手法を使用します。 ただし、これらの手法は、トリガーアクションと結果のアクションを緊密に結合するため、結果のアクションを将来変更することは困難です。 イベントエミッターは、この関係を構築するための別の方法を提供します。publish-subscribeパターンです。 このソフトウェアアーキテクチャパターンでは、パブリッシャー(イベントエミッター)がメッセージ(イベント)を送信し、サブスクライバーがイベントを受信してアクションを実行します。 このパターンの力は、パブリッシャーがサブスクライバーについて知る必要がないことです。 パブリッシャーはメッセージを発行し、それぞれの方法でそれに反応するのはサブスクライバー次第です。 アプリケーションの動作を変更したい場合は、パブリッシャーを変更せずに、サブスクライバーがイベントにどのように反応するかを調整できます。

この記事では、ユーザーがチケットを購入できるようにするTicketManagerJavaScriptクラスのイベントリスナーを作成します。 buyイベントのリスナーを設定します。このイベントは、チケットが購入されるたびにトリガーされます。 このプロセスでは、エミッターからの誤ったイベントを管理する方法と、イベントサブスクライバーを管理する方法も示します。

前提条件

  • 開発マシンにインストールされているNode.js。 このチュートリアルでは、バージョン10.20.1を使用します。 これをmacOSまたはUbuntu18.04にインストールするには、Node.jsをインストールしてmacOSにローカル開発環境を作成する方法またはPPAを使用したインストール]セクションの手順に従います。 Ubuntu18.04