1
0
mirror of https://github.com/laurent22/joplin.git synced 2024-11-30 08:26:59 +02:00
joplin/packages/lib/EventDispatcher.js

34 lines
664 B
JavaScript
Raw Normal View History

2017-07-16 23:17:22 +02:00
class EventDispatcher {
constructor() {
this.listeners_ = [];
}
dispatch(eventName, event = null) {
if (!this.listeners_[eventName]) return;
const ls = this.listeners_[eventName];
2017-07-16 23:17:22 +02:00
for (let i = 0; i < ls.length; i++) {
ls[i](event);
}
}
on(eventName, callback) {
if (!this.listeners_[eventName]) this.listeners_[eventName] = [];
this.listeners_[eventName].push(callback);
}
off(eventName, callback) {
if (!this.listeners_[eventName]) return;
const ls = this.listeners_[eventName];
2017-07-16 23:17:22 +02:00
for (let i = 0; i < ls.length; i++) {
if (ls[i] === callback) {
ls.splice(i, 1);
return;
}
}
}
}
2019-07-29 15:43:53 +02:00
module.exports = EventDispatcher;