Если я правильно понимаю ваш вопрос, то ваш вопрос касается центральной концепции работы Rxjs.
Когда вы подписываетесь на Observable, как это делается в ngOnInit, вы говорите, что выхотите, чтобы этот код запускался каждый раз, когда этим наблюдаемым генерируется новое значение.Это ключевая концепция Rxjs и наблюдаемых.
Это также разница между императивным и реактивным программированием.Когда вы программируете по необходимости (самый распространенный способ), то место в вашем коде, где происходит событие, должно знать, какие функции вызывать дальше.Но с наблюдаемыми мы программируем реактивно, здесь мы можем сказать, что этот код должен реагировать на какое-то событие, и самому событию не нужно знать, какую функцию вызывать.