しようとしている...
EventEmitter = require('events').EventEmitter
events = new EventEmitter()
events.emit.apply(null, ['eventname', 'arg1', 'arg2', 'arg3'])
...しかし、動作しないか、エラーがスローされないようです。
しようとしている...
EventEmitter = require('events').EventEmitter
events = new EventEmitter()
events.emit.apply(null, ['eventname', 'arg1', 'arg2', 'arg3'])
...しかし、動作しないか、エラーがスローされないようです。
Apply メソッドでは、2 つの引数を通知する必要があります。有効なスコープ (メソッド内の「this」となる値) と引数配列です。
EventEmitterのemit()
機能はthis
、実際の EventEmitter オブジェクトであると想定していると思います。events
オブジェクトを渡すと、次のように動作するようです。
events.emit.apply(events, ['eventname', 'arg1', 'arg2', 'arg3'])
ただし、この時点では、単に呼び出すこともできます
emit('eventname', 'arg1', 'arg2', 'arg3')
emit()
メソッドが登録されたイベントの内部リストをループして、一致するイベントがあるかどうかを確認していると思います。これが役立つかどうかはわかりませんが、今日イベントを扱っているときに出会ったものです...