簡単にするために、私はアイデアをテストするためにいくつかの小さなファイルを作成しました。基本的に私は、それは例えば、バックメインファイルにモジュール間でイベントを共有する
をピックアップしているモジュールに放出し、イベントにする方法を探していますこれはアプリに
main.jsを実行するために呼び出さメインファイルである
var test = require('./test')
var emitter = require('./emitter')
var emit = new emitter()
emit.on('response', function(data) {
console.log(data)
})
イベントが
fire.js
を解雇された場所ですemitter.js
に見ることができるようにここで
var emitter = require('./emitter')
var emit = new emitter
var Test = function() {
emit.sendEvent('response', 'test')
}
module.exports = Test
は、アプリケーションのイベント
emitter.js
var util = require('util')
var eventEmitter = require('events').EventEmitter
function Event() {
eventEmitter.call(this)
}
util.inherits(Event, eventEmitter)
Event.prototype.sendEvent = function(type, data) {
this.emit(type, data)
}
module.exports = Event
の発射を処理するために作成したモジュールは、私はそれをできるようにするにはセットアップを持っています解析されたデータを含む任意のカスタムタイプを出力します。
私は最初のmain.js
ファイルでこれを選ぶことはできません。しかし、emit.sendEvent('response', 'banana')
をファイルの最後のmain.js
に配置すると、それは上記のリスナーによって取得されます。これは私のemitter.js
が正しく動作していることを示します。
fire.js
で放出されたイベントがなぜ取り上げられていないのかについてのアイデアは素晴らしいものです。
ありがとうございました。私はこれを数日間戦ってきました。ありがとうございました。私は、オブジェクトが継承されていないことを意味するたびにインスタンス化されることとは何かを感じていました。 –