gpt4 book ai didi

angular - 服务生命周期(销毁服务)

转载 作者:行者123 更新时间:2023-12-01 08:33:14 38 4
gpt4 key购买 nike

我的应用程序的架构如下:
enter image description here

用户登录后,我导航到 主模块 (懒惰的)我在哪里注册 中使用的服务主模块 的组件。
汽车服务 缓存 web 服务的结果,因此,如果用户注销,我需要销毁此服务。
当用户注销时,我导航到 登录模块 .

我认为导航到 登录模块 , 主模块 会被销毁(实际上我在 MainModule 中注册它,而不是在 AppModule 中)但我注意到如果我再次登录,旧缓存仍然存在。
这是正常的吗?
不应该破坏 中提供的服务主模块 当我导航到 登录模块 ?

最佳答案

不幸的是,由于惰性模块的性质,您会期望这种情况发生,这不是发生的情况,请阅读 here为什么不。基本上延迟加载的模块会留在内存中。

但是,您可以将提供程序放在主组件 View 上:

@NgModule({
declarations: [
MainComponent
]
})
export class MainModule {}

@Component({
//...
providers: [ CarService ]
})
export class MainComponent {}

这将破坏 CarService MainComponent 时的实例被摧毁

关于angular - 服务生命周期(销毁服务),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53222529/

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