25 lines
409 B
TypeScript
25 lines
409 B
TypeScript
export class Supervisor {
|
|
#subscriberI: number = 0
|
|
#subscribers: Record<number, () => void> = {}
|
|
|
|
constructor() {
|
|
}
|
|
|
|
notify() {
|
|
for (let i in this.#subscribers) {
|
|
this.#subscribers[i]();
|
|
}
|
|
}
|
|
|
|
onNotify(cb: () => void) {
|
|
let i = this.#subscriberI++;
|
|
this.#subscribers[i] = cb;
|
|
return i;
|
|
}
|
|
|
|
removeOnNotify(handle: number) {
|
|
delete this.#subscribers[handle]
|
|
}
|
|
|
|
}
|