我正在尝试按照Nest documentation中所述执行任务调度,但是没有一个示例为使用调度的服务提供依赖注入。我想要的是在重复执行的任务中使用注入的服务,但是当我做这样的事情时:
@Injectable()
export class MyWorkerService {
constructor(private readonly injectedService: MyInjectedService) {}
@Timeout(5000)
async doSomething(): {
console.log(this.injectedService); // undefined
this.injectedService.doStuff(); // TypeError: cannot read property 'doStuff' of undefined
}
}
...依赖项注入不起作用。两种服务都在同一模块中注册为提供程序。
为什么会这样?我还能如何通过预定方法访问我的其他服务?
答案 0 :(得分:3)
2小时后,我在这里回答自己的问题:)
基本上,我注入到计划服务中的服务之一具有 REQUEST 范围:
@Injectable({ scope: Scope.REQUEST })
将其从注入的服务构造器中删除后,依赖项注入按预期开始工作。