kotelok,
 
	
	| Цитата: | 
	| С 'onHide' не очень понятно. Открыто модально окно, из него открыто другое модальное окно. В обоих подписались на 'BsModalService.onHide'. Закрылось последнее окно, событие получили оба подписчика. | 
	
А вы подписывайтесь не в компоненте, который служит для контента модального окна, а в компоненте на уровень выше, т.е. в данном случае  в том, где определен метод showAbout. Это позволит завести массив, openedWindows: BsModalRef[] и при открытии окна делать push инстанса BsModalRef, а при срабатывании подписки onHide всегда знать какое именно окно закрылось (всегда то, которое последним открылось, т.е. openedWindows[openedWindows.length - 1]), не забывая делать splice затем, чтобы поддерживать коллекцию в актуальном состоянии.
	
	| Цитата: | 
	| А если событие не перехватывать, получается, что при закрытии окна самим 'bootstrap', значение 'result' никогда не будет установлено, а значит и подписка, дажче через 'result.pipe(takie(1)).subscribe' зависнет в ожидании навсегда. | 
	
В данном случае лучше отписывать в ngOnDestroy
	
	| Цитата: | 
	| Или такая подписка сбросится, если объект компонента будет уничтожен? | 
	
нет
	
	| Цитата: | 
	| И есть ли какая-нибудь возможность отловить событие, когда сборщик мусора собирает объект? | 
	
нет