繁体   English   中英

nestjs中的模块解析

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM