我们知道在根模块提供程序中,我们可以APP_INITIALIZER在后端设置引导某些依赖项,然后加载第一个组件
{
    provide: APP_INITIALIZER,
    useFactory: configLoader,
    multi: true,
    deps: [ConfigService]
}
我将以上述方式在应用程序启动之前加载我的用户配置,但我想做更多的事情,比如在我的应用程序启动之前连接websocket.
我知道我可以在configLoader我编写的函数中执行,首先加载配置然后在该configLoader函数中连接websocket,但由于某些原因,我现在不能这样做,所以我需要在某种程度上这样做:
{
    provide: APP_INITIALIZER,
    useFactory: [configLoader, websocketLoader],
    multi: true,
    deps: [ConfigService, WebsocketService]
}
但不幸的是,它不会起作用.那么有没有办法加载多个应用程序初始化程序?
Gün*_*uer 13
useFactory 不应该是一个数组
{
    provide: APP_INITIALIZER,
    useFactory: websocketLoader,
    multi: true,
    deps: [ConfigService, WebsocketService]
},
{
    provide: APP_INITIALIZER,
    useFactory: configLoader,
    multi: true,
    deps: [ConfigService, WebsocketService]
}
通过multi: true为多个提供者提供相同的键(APP_INITIALIZER)不会覆盖前一个(行为multi: false),但DI将在数组本身中收集它们.
| 归档时间: | 
 | 
| 查看次数: | 4747 次 | 
| 最近记录: |