0

次のようなものを実装しようとしています: (「コマンドライン インターフェイスはバイポーラにする必要がある」というタイトルのセクションを参照してください。

http://michaelbrooks.ca/deck/jsconf2013/#/74

基本的に私は次のようなものが欲しい:

var argv = require('optimist')
        .argv;

var em = require('events').EventEmitter;
var EventEmitter = new em();

var bell = function ringBell() {
console.log('ring');
}

EventEmitter.emit('doorOpen');

if (argv.t) {
    EventEmitter.on('doorOpen', bell);
}

これを実際にどのように使用しているかはもう少し複雑ですが、特定のものをすぐに発行し、後でそれらをサブスクライブして、特定のものが true の場合に出力を表示する可能性を持たせたい (この場合は -tフラグが指定されている場合)、指定されていない場合は何も起こりません。

何かご意見は?

ありがとう。

4

1 に答える 1

1

イベントが発行される前にサブスクライブする必要があります。「doorOpen」イベントを発行する前に「if(argv.t)」ブロックを配置します。アプリが非常に複雑な場合でも、イベント ハンドラーを発行する前にアタッチする必要があります。

例えば:

if (argv.t) {
    em.on('doorOpen', bell);
}

em.emit('doorOpen');
于 2013-10-30T10:29:52.143 に答える