首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >nestjs中的模块解析

nestjs中的模块解析
EN

Stack Overflow用户
提问于 2019-03-18 05:32:46
回答 1查看 1.7K关注 0票数 1

我有模块a和模块b。模块a异步实例化其服务提供者,而模块b同步实例化。两者都包含多个端点。两个模块都是由AppModule导入的。

现在我刚开始从服务器端思考问题,我也是从角度懒散的负载中来的,所以请接受我的观点。

如果模块b的端点被激活,(?)模块也会加载吗?模块中定义的使用异步工厂实例化的服务提供者是否也会被实例化?

EN

回答 1

Stack Overflow用户

发布于 2019-03-18 08:28:43

异步提供程序的概念与角提供程序的概念略有不同;它与路由或控制器无关。

如果提供程序是异步的,这意味着它需要等待异步资源(允诺)被解析后才能被实例化。它可以等待建立数据库连接,也可以等待从文件系统加载配置。当应用程序启动时,所有异步提供程序都已被完全实例化。

要尝试这一点,您可以异步地添加HttpModule,如下所示:

代码语言:javascript
运行
复制
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不是动态实例化的,您可能期望它是从角度来的。

代码语言:javascript
运行
复制
[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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55215041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档