angular - 如果我更改可观察对象,异步管道是否会自动取消订阅可观察对象?
问题描述
我正在尝试使用 ngrx 制作语言管道。
组件.html:
<p>{{1 | language: languageId | async }}</p>
语言管道:
constructor(private store:Store){}
transform(resourceId: number, languageId:number): Observable<string> {
return this.store.select(selectResource, { resourceId, languageId });
}
我的问题是,如果我更改组件中的 languageId,那么管道将从商店中选择一个新的 Observable,但是异步管道会取消订阅以前的 Observable,还是我必须手动执行?
解决方案
异步管道订阅 Observable 或 Promise 并返回它发出的最新值。
当发出新值时,异步管道会标记要检查更改的组件。
当组件被销毁时,异步管道会自动取消订阅以避免潜在的内存泄漏。
在此处查找有关异步管道的更多详细信息
推荐阅读
- reactjs - Dragabbale 不会在 react-beautiful-dnd 中移动
- c++ - 为 OpenSplice 模板创建容器?
- bash - 使用脚本参数中的文件名对所有文件执行命令并存储在新目录中
- prometheus - 如何配置 Grafana 以捕捉 Prometheus 指标的急剧下降?
- php - 传递给 App\Http\Controllers\UsoSueloController::store() 的参数 1 必须是 Illuminate\Http\Request 的实例,给定字符串
- r - 尝试制作分组条形图并继续收到“-0.01 * 高度错误:二进制运算符的非数字参数”
- json - 在 listView QML 中使用嵌套 JSON 作为 section.property
- python - 加入三个表并专门对 pandas 中的列进行排序
- java - 如何在特定时间自动启用/禁用推送通知
- microsoft-graph-api - 订阅未返回 201 Created HTTP 状态码