[英]Module Resolution in nestjs
我有模块a和模块b 。 模块a异步实例化其服务提供者,而模块b同步实例化。 两者都包含多个端点。 这两个模块均由AppModule
导入。
现在,我是从服务器端开始思考问题的新手,而且我还来自角型延迟加载,因此请在这里忍受。
如果从模块B的端点被激活(?)不模块的负载中呢? 模块a中定义的使用异步工厂实例化的服务提供者是否也实例化了?
异步提供程序的概念与Angular的有所不同。 它与路由或控制器无关。
如果提供程序是异步的,则意味着它需要等待异步资源(Promise)被解析后才能实例化。 那可以等待建立数据库连接或从文件系统加载配置。 应用程序启动后,所有异步提供程序都已完全实例化。
要尝试此操作,可以异步添加HttpModule
,如下所示:
HttpModule.registerAsync({
useFactory: async () => {
console.log('Starting to instantiate');
// wait 5 seconds to simulate asynchronous task
await new Promise(resolve => setTimeout(resolve, 5000));
console.log('Done after 5 seconds');
return {};
},
}),
],
启动应用程序时,您会看到启动将等待5秒钟。 HttpModule
不会像您期望的那样来自Angular动态地实例化。
[Nest] 242 - 3/18/2019, 2:08:04 PM [NestFactory] Starting Nest application...
Starting to instantiate
[Nest] 242 - 3/18/2019, 2:08:04 PM [InstanceLoader] AppModule dependencies initialized +8ms
Done after 5 minutes
[Nest] 242 - 3/18/2019, 2:08:09 PM [InstanceLoader] HttpModule dependencies initialized +5004ms
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.