Поскольку мытье рук и социальное дистанцирование являются основными инструментами для устранения утечки вируса короны, так как отказ от подписки является важным инструментом для предотвращения утечек памяти при использовании Observables. Это необходимо сделать, иначе в нашем приложении останутся неиспользуемые ссылки на объекты. Но если мы используем HTTP-клиент, нет необходимости вызывать отмену подписки. Что это такое?

Ответ живет внутри, как на самом деле Angular создает эту наблюдаемую. Если мы покопаемся в исходном коде Angular, то найдем класс под названием XHRConnection, который отвечает за создание запроса AJAX, преобразование его в Observable и возврат ответа. Вот как выглядит процесс создания (не читайте полностью, просто взгляните)

Самый важный для нас фрагмент кода - это

Поэтому всякий раз, когда ответ приходит от запроса AJAX, он вызывает метод next, именно так мы получаем ответ внутри нашей subscribe функции. После того, как выполнение нашей функции будет завершено, Angular бесполезно поддерживать этот наблюдаемый объект, поэтому он вызывает метод complete(), который отменяет подписку самостоятельно, поэтому вам больше не нужно вызывать функцию отмены подписки.

То же самое касается Subject, BehaviourSubject и EventEmitter. У всех них есть complete() метод, поэтому, если вы вызовете этот метод, даже если у вас было 100 подписок, все они автоматически отменит подписку.