Angular 如何取消订阅观察员?
有一位观察员:Angular 如何取消订阅观察员?,angular,angular7,angular8,Angular,Angular7,Angular8,有一位观察员: export class ListenerService { private action: Subject<IActionData> = new Subject(); apply(data?: IActionData) { this.action.next(data); } changes(): Observable<any> { return this.action.asObserv
export class ListenerService {
private action: Subject<IActionData> = new Subject();
apply(data?: IActionData) {
this.action.next(data);
}
changes(): Observable<any> {
return this.action.asObservable();
}
}
在destroy component中,我尝试取消设置此.sub:
它说:
错误类型错误:this.sub.unsubscribe不是函数
在VersionsAddressComponent.ngOnDestroy上
这应该可以做到:
this.sub = this.listener.changes().subscribe((res: IActionData) => {});
this.sub.unsubsribe();
组件中的订阅值,如
sub: Subscription;
您的订阅将是
this.sub = this.listner.changes.subscribe((res: IActionData) => {});
而onDestroy将是
ngOnDestroy() {
this.sub.unsubsribe();
}
您必须使用RXJS订阅:
subscription = new Subscription() ;
this.subscription.add(this.listener.changes().subscribe((res: IActionData) => {}));
ngOnDestroy(): void {
this.subscription.unsubscribe();
}
Observable无法取消订阅,可以取消订阅:
例如:
this.sub=this.listener.changes.subscriberes:IActionData=>{};您是否将“取消订阅”拼错为“取消订阅”D可能是拼写错误,因为您可以看到给出的错误也是取消订阅xDI仍然获取:WordDictComponent.html:4错误类型错误:this.sub.unsubscribe不是一个函数您可以在stackblitz中发布代码并共享链接以获得更多信息吗
ngOnDestroy() {
this.sub.unsubsribe();
}
subscription = new Subscription() ;
this.subscription.add(this.listener.changes().subscribe((res: IActionData) => {}));
ngOnDestroy(): void {
this.subscription.unsubscribe();
}