我得到了一个关于Angular如何处理异步管道的快速问题:给定下面的代码块,如果我在一个将被呈现N次的元素中调用一个函数,并使用异步管道将可观察对象的值作为参数传递给它,那么传递给这些函数执行的订阅是共享的还是独立的订阅?
<ng-container *ngFor="...">
<div>{{ getSomeValue(myObservable$ | async) }}</div>
</ng-container>谢谢!!
发布于 2021-04-14 08:06:27
每个异步管道都会产生一个新的订阅。因此,为了避免不必要的预订,您可以使用*ngIf方法
<ng-container *ngIf="(myObservable$ | async) as myValue">
<ng-container *ngFor="...">
<div>{{ getSomeValue(myValue) }}</div>
</ng-container>
</ng-container>myObservable$ | async将计算并绑定到myValue的值,然后它就可以在模板子树中使用,而无需进一步订阅。
https://stackoverflow.com/questions/67083437
复制相似问题