我找不到与此相关的任何文档,所以在这里。我在模板中使用了异步管道:
<component [aliases]="(users$ | async).profile.aliases$ | async"/>
aliases$
发出时是否正确取消订阅users$
?如果包装元素上有*ngIf
怎么办?
为了避免使用多个async
管道,请在课程中尝试使用此方法>>
aliases$ = this.users$.pipe( switchMap(users => users.profile.aliases$), ) <component [aliases]="aliases$ | async"/>
关于您的安全问题。订阅内部观察将是活的。检查此stackblitz https://stackblitz.com/edit/angular-f88kfn。
[如果我们深入研究AsyncPipe
的来源,我们会发现ngOnDestroy
挂钩中的管道取消订阅。但是,如果“外部”可观察对象在“流”中仅具有新值,则不会调用它。因此,只需使用switchMap
和一个async
管道即可。
我希望能帮上忙。