Я создал службу уведомлений для своего приложения следующим образом:
export class NotificationService {
private subject = new Subject<Notification>();
constructor() {}
getNotification(): Observable<any>{
return this.subject.asObservable();
}
success(title: string, message: string){
this.notif(NotificationType.SUCCESS, title, message);
}
error(title: string, message: string){
this.notif(NotificationType.ERROR, title, message);
}
technicalError(title:string, message: string){
this.notif(NotificationType.TECHNICAL_ERROR, title, message);
}
info(title: string, message: string){
this.notif(NotificationType.INFO, title, message);
}
warning(title: string, message: string){
this.notif(NotificationType.WARNING, title, message);
}
notif(type: NotificationType, title: string, message: string){
this.subject.next(<Notification>{ type: type, title: title, message: message});
}
И это пример того, как я использую этот сервис:
this.notificationService.success("Suppression", "L'enregistrement a été supprimée !");
И так как у меня есть компонент, который является общим для всех моих компонентов, который является заголовком, у меня есть подписка на тему службы уведомлений в ее функции ngOnInit:
this.notificationService.getNotification().subscribe((notification: Notification) => {
this.notification.create(NotificationType[notification.type], notification.title, notification.message);
});
При первом запуске приложения код внутри функции подписки выполняется один раз, когда я вызываю некоторую функцию уведомлений, но после этого код внутри функции подписки выполняется несколько раз.
Как я могу решить это?