Чтобы избежать использования нескольких async
труб, попробуйте это в классе
aliases$ = this.users$.pipe(
switchMap(users => users.profile.aliases$),
)
<component [aliases]="aliases$ | async"/>
И относительно вашего вопроса о безопасности. Подписка на внутреннюю заметку будет жива. Проверьте этот стек https://stackblitz.com/edit/angular-f88kfn.
Если мы погрузимся в источники AsyncPipe
, мы обнаружим, что канал отписывается в ngOnDestroy
ловушке. Но это не вызывается, если «внешняя» наблюдаемая просто имеет новое значение в «потоке». Так что просто используйте switchMap
и одну async
трубу.
Надеюсь, это поможет.