class Event {
constructor(){
this.handlers = {};
}
on(eventType, handler){
if(!(eventType in this.handlers)){
this.handlers[eventType] = [];
}
this.handlers[eventType].push(handler);
}
emit(eventType){
let handlerArgs = Array.prototype.slice.call(arguments, 1);
this.handlers[eventType] && this.handlers[eventType].forEach(handler => {
handler.apply(this, handlerArgs);
});
}
off(eventType, handler){
delete this.handlers[eventType];
}
};
let event = new Event();
event.on('A', (parmas) => {
console.log('First on');
});
event.on('A', (parmas) => {
console.log('Second on');
});
event.on('B', (parmas) => {
console.log(parmas);
});
event.emit('A', 'xxx');
event.emit('B', 'xxx');
event.off('B');
event.emit('B', 'xxx');
Subscribe-Publisher
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 注:这是RabbitMQ-java版Client的指导教程翻译系列文章,欢迎大家批评指正第一篇Hello Word...
- 1.使用某些共同的功能可以作为服务,比如说使用一个服务来定义一个URL,可以作用于全局,服务是可以在任何组件中单独...
- 物联网最近曝光率越来越高。虽然HTTP是网页的事实标准,不过机器之间(Machine-to-Machine,M...
- 在之前的Work queues中,我们将消息发送给多个消费者,但是同一条消息只被A or B处理,假设有这样一个场...