这里,Im建立了可观测站,在一次点击事件上,Im没有提交。 虽然这一行动在使用可观测到的、如果我选择一个主题,则在使用可观测到的间隙时,无法从可观测到和清楚看出,但产生于在可观测的海狗生产过程中的匿名功能。 这导致记忆泄露。 如何处理这种情况?
let newObs = new Observable<number>(observer=>{
let i=0;
let interval = setInterval((f:any)=>{
i++;
console.log(i+"in observer");
observer.next(i)
},1000)
return ()=>{
console.log("will be executed when unsubscribed or on error");
clearInterval(interval);
}
})
let sub = new Subject<number>();
newObs.subscribe(sub);
this.subscription2 = sub.subscribe({
next: (data: number) => { console.log(data+" subscription2") },
error: (error: string) => { console.log(error) },
complete: ()=>{console.log( complete )}
})
this.subscription = sub.subscribe(f=>{
console.log(f+"in subscription");
},error=>{
console.log(error)
},()=>{
console.log("complete")
})
to unsubscribe subscriptions on click
ngAfterViewInit(){
fromEvent(this.mapm.nativeElement, click ).subscribe(res=>{
console.log(res)
this.subscription.unsubscribe();
this.subscription2.unsubscribe();
},(error:any)=>{
console.log(error)
},()=>{
console.log("completed!")
})
}