angular - 如何取消订阅观察者?
问题描述
有观察者:
export class ListenerService {
private action: Subject<IActionData> = new Subject();
apply(data?: IActionData) {
this.action.next(data);
}
changes(): Observable<any> {
return this.action.asObservable();
}
}
使用的是:
this.sub = this.listener.changes();
this.sub.subscribe((res: IActionData) => {});
在销毁组件中,我尝试取消设置this.sub
:
ngOnDestroy() {
if (this.sub) {
console.log(this.sub);
this.sub.unsubsribe();
}
}
它说:
错误类型错误:this.sub.unsubsribe 不是 VersionsAddressComponent.ngOnDestroy 的函数
解决方案
组件中的订阅值,例如
sub: Subscription;
你的订阅将是
this.sub = this.listner.changes.subscribe((res: IActionData) => {});
而 onDestroy 将是
ngOnDestroy() {
this.sub.unsubsribe();
}
推荐阅读
- ios - 代号一 iOS 64 位性能
- flutter - Flutter 文件已写入但无处可寻
- android - Alarmmanager setExact 方法无法正常工作
- python - 从 Google Drive 读取到 Google Colab 后,图像数据以不同/随机顺序存储在数组中
- postgis - What approach should I use in PostGIS to find all services that have a radius that intersect a customer
- ocaml - OCaml:为什么`let f : int -> int list -> int list = (::);;` 会失败?
- java - org.hibernate.type.NumericBooleanType 不转换 JPASQLQuery 中的值
- keras - 尝试从容器中的 AWS lambda 中使用 keras 模型超时
- azure - 使用 PCF 中运行的容器的托管标识来访问 Azure Blob 存储
- c# - 用于票证管理的 ASP.NET Core MVC 应用程序