如果我更改可观察对象,异步管道是否会自动取消订阅可观察对象?
Does async pipe automatically unsubscribe from observable, if I change the observable?
我正在尝试使用 ngrx 制作语言管道。
component.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,那么管道将从存储中 select 一个新的 Observable,但是异步管道会取消订阅以前的 Observable,还是我必须手动做吗?
异步管道订阅 Observable 或 Promise 和 returns 它发出的最新值。
发出新值时,异步管道标记要检查更改的组件。
当组件被销毁时,异步管道会自动取消订阅以避免潜在的内存泄漏。
查找有关异步管道的更多详细信息here
是的,如果 Observable
实例已更改,async
将处理退订。
Here is a running example on stackblitz.
我正在尝试使用 ngrx 制作语言管道。
component.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,那么管道将从存储中 select 一个新的 Observable,但是异步管道会取消订阅以前的 Observable,还是我必须手动做吗?
异步管道订阅 Observable 或 Promise 和 returns 它发出的最新值。
发出新值时,异步管道标记要检查更改的组件。
当组件被销毁时,异步管道会自动取消订阅以避免潜在的内存泄漏。
查找有关异步管道的更多详细信息here
是的,如果 Observable
实例已更改,async
将处理退订。
Here is a running example on stackblitz.