【发布时间】:2013-11-09 01:21:30
【问题描述】:
我正在尝试实现以下内容:(请参阅标题为“命令行界面应该是双极的”部分。
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);
}
我实际上如何使用它有点复杂,但我想立即发出某些东西,然后有可能稍后订阅它们,如果某些事情是真的,则向他们显示输出(在这个给出 case -t 标志),如果没有,则没有任何反应。
有什么想法吗?
谢谢。
【问题讨论】:
-
您必须在事件发出前订阅。在发出“doorOpen”事件之前放置“if(argv.t)”块。即使您的应用程序非常复杂,您也需要在事件处理程序发出之前附加它。
-
啊,当然!非常感谢。如果您将其作为答案提交,我会接受。
标签: javascript node.js shell command-line command-line-interface