typescript - 如何在 NestJS 中实现 OnApplicationShutdown 接口的类中使用 Service
问题描述
我尝试使用的服务来自一个外部库,该库在其内部定义了一个全局字段,我在不同的模块中使用。
我试图在构造函数中注入服务,但它的值是undefined
它被调用的时间。
shutdown.hook.ts的内容:
export class AppShutdownHook implements OnApplicationShutdown {
constructor(
private fooService: FooService
) {}
async onApplicationShutdown(signal: string) {
if (signal === "SIGTERM") {
this.fooService.getFooField();
}
}
}
main.ts的内容:
app.enableShutdownHooks();
此外,我尝试将服务初始化为类属性,但它创建了服务类的另一个实例,该实例具有不同的全局值。
export class AppShutdownHook implements OnApplicationShutdown {
private fooService = new FooService();
...
}
解决方案
您需要进行装饰AppShutdownHook
,@Injectable()
以便 Nest 可以读取构造函数的元数据并正确执行您期望的依赖注入。
推荐阅读
- php - 在 html/php 中为输入 RGB 值在框中显示颜色
- python - 数据框线图未绘制具有列值的线
- javascript - 使用 JavaScript 时如何在对象数据中使用可选链接?
- javascript - Jest 测试函数忽略前两个参数
- instagram - Sanity.io API 从 URL 上传图片
- java - 当我尝试将 html 转换为 pdf 时,Itext7 抛出错误
- mysql - SQL:查询在一个字段中查找具有共同值的多个项目
- algorithm - 如何设计一个系统以在时间窗口中查找前 K 个热门帖子
- angular - 占位符上的 setValue 问题
- c# - 如何在 C# 中使用 JSON-Body 和代理进行发布请求?