Nodejs.订阅 EventEmitter.emits 并仅在特定条件下执行
Nodejs. Subscribe to EventEmitter.emits and only execute on certain conditions
我正在尝试实现如下内容:(请参阅标题为"命令行界面应该是双极的"一节。
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);
}
我实际使用它的方式有点复杂,但我想立即发出某些东西,然后有可能稍后订阅它们,如果某些事情为真(在这种情况下是 -t 标志被给出),则输出显示给他们,如果不是,什么都不会发生。
有什么想法吗?
谢谢。
您必须在发出事件之前订阅。在发出"doorOpen"事件之前放置"if(argv.t)"块。即使你的应用非常复杂,也需要在发出事件处理程序之前附加它。
例如:
if (argv.t) {
em.on('doorOpen', bell);
}
em.emit('doorOpen');
相关文章:
- 如何做到这一点,使代码在不传递条件后执行函数
- html+javascript:如何在某些条件下禁用dropdownlist中的null选项
- 在特定条件下从存储在localStorage中的阵列中删除对象
- 如何在一定条件下使必填字段为真
- 如何在特定条件下完全禁用FullPage.js
- 在条件下使用 slideUp() 和 slideDown()
- 停止计算以在特定条件下更新
- 如何加载特定天气条件下的图标?(AngularJS)
- 比较IF条件下的两个javascript数值
- 基于浏览器窗口大小的条件 JavaScript 执行
- 在不使用隔离作用域的情况下执行函数的角度指令
- 如何在 ul 标签下执行 JQuery UI 自动完成
- ComboBox typeAhead有效,但在某些行为条件下valueField为空
- 我的if条件的执行
- Angular在不触发摘要的情况下执行XHR请求
- 返回三元条件下的新promise Q
- Phonegap onclick在不单击的情况下执行
- 保持函数在一定条件下执行
- Nodejs.订阅 EventEmitter.emits 并仅在特定条件下执行
- 如何仅在特定条件下节流jQuery,否则立即执行