gpt4 book ai didi

angular - 使用 Angular 指令,是否需要取消订阅服务?

转载 作者:行者123 更新时间:2023-12-05 06:07:28 25 4
gpt4 key购买 nike

使用 Angular 10,我有一个监听服务的指令。在这种情况下我需要取消订阅那个 Observable 吗?

例如:

@Directive({
selector: '[appShowFoo]'
})
export class ShowFooDirective {
@HostBinding('class.foo') foo: boolean;

constructor(private _fooService: FooService) {
this._fooService.foo$.subscribe(foo => this.foo = foo);
}
}

最佳答案

始终取消订阅。事件订阅会占用内存,如果不清理会导致内存泄漏,而不是在您使用它们的地方。

像这样的事情会在可观察到的完成时清除订阅。

const sub = this.observable$.subscribe(
value =>{...},
error => {...},
/*onComplete*/
() => sub.unsubscribe()
);

对于一次性操作,您可以调用 toPromise() 并使用 thenawait

关于angular - 使用 Angular 指令,是否需要取消订阅服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65414002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com