Ответ 1
Как запрошено @katspaugh
В вашем конкретном случае нет необходимости отменить подписку вручную, поскольку это задание на работу Async.
Проверьте исходный код для AsyncPipe. Для краткости я отправляю соответствующий код
class AsyncPipe implements PipeTransform, OnDestroy {
// ...
ngOnDestroy(): void {
if (isPresent(this._subscription)) {
this._dispose();
}
}
Как вы видите, Async-канал реализует OnDestroy, а когда он уничтожен, он проверяет, есть ли какая-то подписка и удаляет его.
Вы бы изобрели колесо в этом конкретном случае (извините за повторение себя). Это не означает, что вы не можете/не должны отписываться самостоятельно в любом другом случае, как тот, на который вы ссылались. В этом случае пользователь передает Observable между компонентами, чтобы сообщить их, поэтому хорошей практикой является отмена подписки вручную.
Я не знаю, сможет ли фреймворк обнаруживать любые живые подписки и автоматически отписывать их, когда Компоненты уничтожаются, что потребует большего изучения.
Надеюсь, это немного разъяснит о трубе Async.