angular - 当我在要迭代的元素中调用异步管道时,会创建一个共享订阅还是多个?
问题描述
有一个关于 Angular 如何处理异步管道的快速问题:给定以下代码块,如果我要调用将呈现 N 次的元素内的函数并使用异步管道将可观察的值作为参数传递给它,传递给这些函数执行的订阅是共享的还是独立的订阅?
<ng-container *ngFor="...">
<div>{{ getSomeValue(myObservable$ | async) }}</div>
</ng-container>
谢谢!!
解决方案
每个异步管道都会产生一个新的订阅。因此,为避免不必要的订阅,您可以使用*ngIf
approch
<ng-container *ngIf="(myObservable$ | async) as myValue">
<ng-container *ngFor="...">
<div>{{ getSomeValue(myValue) }}</div>
</ng-container>
</ng-container>
myObservable$ | async
将评估并绑定到 的值myValue
,然后在模板子树中无需进一步订阅即可使用它。
推荐阅读
- php - 在刽子手游戏中存储所有猜测的字母
- azure - 没有开发人员门户的 Azure API 管理
- google-apps-script - 如何返回内置 Google 电子表格函数可以使用的字符串
- r - Ubuntu 18.04 RJDBC:到 oracle 的 JDBC 连接挂起没有响应
- ios - 将 Xcode 从 7 升级到 10 后 popoverController 不显示
- android - 将 2 个视图与 ConstraintLayout 并排放置
- video - SharePoint Online 是否支持 .MOV 视频文件
- git - 如何从分叉仓库获取远程分支到本地,并且当前从哪个分支推送的分叉仓库不存在
- php - 我想通过 JSON 使用 Ajax 从函数发送数组
- c# - 正则表达式验证花费太长时间 c#