0

しようとしている...

EventEmitter = require('events').EventEmitter

events = new EventEmitter()

events.emit.apply(null, ['eventname', 'arg1', 'arg2', 'arg3'])

...しかし、動作しないか、エラーがスローされないようです。

4

2 に答える 2

1

Apply メソッドでは、2 つの引数を通知する必要があります。有効なスコープ (メソッド内の「this」となる値) と引数配列です。

于 2013-09-19T20:48:50.387 に答える
0

EventEmitterのemit()機能はthis、実際の EventEmitter オブジェクトであると想定していると思います。eventsオブジェクトを渡すと、次のように動作するようです。

events.emit.apply(events, ['eventname', 'arg1', 'arg2', 'arg3'])

ただし、この時点では、単に呼び出すこともできます

emit('eventname', 'arg1', 'arg2', 'arg3')

emit()メソッドが登録されたイベントの内部リストをループして、一致するイベントがあるかどうかを確認していると思います。これが役立つかどうかはわかりませんが、今日イベントを扱っているときに出会ったものです...

于 2013-10-07T19:44:57.437 に答える