Angular2:当服务被破坏时,我们需要取消订阅吗?
当服务被破坏时,我们是否需要取消订阅 根据销毁事件,侦听此服务的其他组件可以取消订阅。我只是不明白为什么这么做很重要Angular2:当服务被破坏时,我们需要取消订阅吗?,angular,typescript,Angular,Typescript,当服务被破坏时,我们是否需要取消订阅 根据销毁事件,侦听此服务的其他组件可以取消订阅。我只是不明白为什么这么做很重要 这是一种很好的做法,还是出于性能目的的需要?是的,因为这样的东西会导致内存泄漏。这总是一个很好的做法,清理后,你自己,以确保你不会遇到大问题的道路上,因为我在过去,特别是与角1 订阅后的清理相当简单: import {Subscription} from 'rxjs/Subscription'; 在你们班: public configSubscription: Subscrip
这是一种很好的做法,还是出于性能目的的需要?是的,因为这样的东西会导致内存泄漏。这总是一个很好的做法,清理后,你自己,以确保你不会遇到大问题的道路上,因为我在过去,特别是与角1 订阅后的清理相当简单:
import {Subscription} from 'rxjs/Subscription';
在你们班:
public configSubscription: Subscription;
在构造函数内部或ngOnInit或其他适当位置:
this.configSubscription = this.api.config$.subscribe(
config => {
this.config = config;
});
然后用这个来清理:
ngOnDestroy() {
this.configSubscription.unsubscribe();
}
是的,你知道,因为像这样的东西会导致内存泄漏。这总是一个很好的做法,清理后,你自己,以确保你不会遇到大问题的道路上,因为我在过去,特别是与角1 订阅后的清理相当简单:
import {Subscription} from 'rxjs/Subscription';
在你们班:
public configSubscription: Subscription;
在构造函数内部或ngOnInit或其他适当位置:
this.configSubscription = this.api.config$.subscribe(
config => {
this.config = config;
});
然后用这个来清理:
ngOnDestroy() {
this.configSubscription.unsubscribe();
}
@如果是那样的话,我想你不必担心。一旦你投下一个承诺,潜在的可观察到的将在承诺解决/拒绝时完成。这是因为根据定义,承诺只发出一个值,所以它们的资源不会像可观察对象那样停留。PS:也许其他人可以在这里权衡,但有一个边缘案例:如果你的承诺永远无法解决b/c问题,可观测的源不会发出,那么该资源仍然存在。在这种情况下,您可能需要解决它,但我仍然不认为memleak的危险,除非您继续扩展promises@Scipion那样的话,我想你不必担心。一旦你投下一个承诺,潜在的可观察到的将在承诺解决/拒绝时完成。这是因为根据定义,承诺只发出一个值,所以它们的资源不会像可观察对象那样停留。PS:也许其他人可以在这里权衡,但有一个边缘案例:如果你的承诺永远无法解决b/c问题,可观测的源不会发出,那么该资源仍然存在。在这种情况下,你可能需要解决这个问题,但我仍然不认为memleak有什么危险,除非你不断地跨越承诺。你不是从这里得到答案吗?你不是从这里得到答案吗