nodejs 垃圾回收器会释放分配的内存吗?

Will nodejs garbage collector free the allocated memory?

提问人:Itay Bardugo 提问时间:11/10/2023 更新时间:11/10/2023 访问量:33

问:

我正在开发一个 nestjs 应用程序。 众所周知,NestJS 有其依赖注入。 如果我使用 Nesjs DI 创建一个服务(我们称之为 ExternalServicrClient),并且该服务是单例, 然后,我将该服务传递到一个类中 - 我们将其称为 FetchSomething,使用新的 FetchSomething() 方式(在 Nest DI 系统之外)

垃圾收集器会在 FetchSomething 结束时释放分配的内存吗? 例:


Class FetchSomething{
  Private e

xternalServicrClient :ExternalServicrClient

Constructor(service) {
  This.externalServicrClient = service
}

DoSomething() {
Return This.externalServicrClient.request()

}
}

Class facade{
Function start(){
    Instance = new FetchSomething(
Service=this.externalServiceClient
)
Instance.DoSomething()

}
}

还没有检查过

节点 .js nestjs 垃圾回收

评论

1赞 Stephen C 11/10/2023
由于语法错误等原因,此代码看起来不会运行。但是在你纠正了这些之后(并假设我已经理解了你的意思),那么 的实例在完成后就有资格进行垃圾回收,就像调用的结果一样。但是,在收到来自外部服务的响应之前,与请求关联的数据结构将不符合条件。FetchSomethingstart()DoSomething
1赞 Itay Bardugo 11/10/2023
谢谢你的回答。我正在用手机写这个,我知道代码坏了。但你明白我的想法。所以 FetchSomething 即使认为它持有一个单身人士作为成员,也有资格吗?@StephenC
1赞 Stephen C 11/10/2023
FetchSomething是普通对象,当没有可访问的引用时,将有资格进行垃圾回收。事实上,它引用了其他不会被GC的东西,这对>它的一生<无关紧要。

答: 暂无答案