когда отписаться от события SSE Event Source в angular (закрытие / обновление) - PullRequest
0 голосов
/ 04 июня 2019

Я использую некоторый EventSource в службе в моем приложении.

Я хотел бы закрыть все соединение, когда браузер закрыт / обновлен.

Я видел это сообщение

Прямо сейчас, это то, что я добавил к своему сервису.

  @HostListener('window:beforeunload')
  onBrowserClose() {
    this.clearAll();
  }

  clearAll() {
    if (this.eventSource) {
      this.eventSource.close();
    }
    this.callbacks = new Map<string, (e: any) => void>();
  }

есть ли лучшее решение?

1 Ответ

1 голос
/ 04 июня 2019

вы можете использовать ngOnDestroy() для отписки о событиях

ngOnDestroy() {
  if (this.eventSource) {
    this.eventSource.close();
  }
  this.callbacks = new Map<string, (e: any) => void>();
}

Я хочу закрыть все соединение, когда браузер закрыт /обновился.

this angular life cycle method will be called when component is going to destroy
...