mirror of
https://github.com/wassname/talk.git
synced 2026-06-30 01:58:00 +08:00
22 lines
363 B
JavaScript
22 lines
363 B
JavaScript
export default class Action {
|
|
listeners = [];
|
|
|
|
listen = cb => {
|
|
this.listeners.push(cb);
|
|
};
|
|
|
|
unlisten = cb => {
|
|
this.listeners = this.listeners.filter(i => i !== cb);
|
|
};
|
|
|
|
event = { listen: this.listen, unlisten: this.unlisten };
|
|
|
|
call(...args) {
|
|
this.listeners.forEach(cb => cb(...args));
|
|
}
|
|
|
|
asEvent() {
|
|
return this.event;
|
|
}
|
|
}
|