2
0
mirror of https://github.com/frappe/books.git synced 2024-09-20 11:29:00 +00:00
books/utils/observable.js

20 lines
446 B
JavaScript
Raw Normal View History

2018-01-31 10:13:33 +00:00
module.exports = class Observable {
2018-01-31 12:56:21 +00:00
constructor() {
this._handlers = {};
}
2018-01-31 10:13:33 +00:00
on(event, fn) {
if (!this._handlers[event]) {
2018-01-31 12:56:21 +00:00
this._handlers[event] = [];
}
2018-01-31 10:13:33 +00:00
this._handlers[event].push(fn);
}
async trigger(event, params) {
if (this._handlers[event]) {
for (let handler of this._handlers[event]) {
await handler(params);
}
}
}
}