簡體   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