financial-assistant

Форк
0
28 строк · 812.0 Байт
1
import { EventTypes } from "../contracts/enums";
2

3
class EventObserver {
4
  private observers: { [eventType: string]: ((data: any) => void)[] } = {};
5

6
  public subscribe(eventType: EventTypes, observer: (data: any) => void): void {
7
    if (!this.observers[eventType]) {
8
      this.observers[eventType] = [];
9
    }
10
    this.observers[eventType].push(observer);
11
  }
12

13
  public unsubscribe(eventType: string, observer: (data: any) => void): void {
14
    if (this.observers[eventType]) {
15
      this.observers[eventType] = this.observers[eventType].filter(
16
        (obs) => obs !== observer
17
      );
18
    }
19
  }
20

21
  public notify(eventType: EventTypes, data?: any): void {
22
    if (this.observers[eventType]) {
23
      this.observers[eventType].forEach((observer) => observer(data));
24
    }
25
  }
26
}
27

28
export default EventObserver;
29

30

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.