角度多个 APP_INITIALIZER 相互依赖

AD8*_*AD8 6 dependency-injection angular

背景:我需要在应用程序启动期间执行一些初始检查(1)./assets/config.json文件中读取 angular 应用程序配置并从那里获取 API 端点,(2)对第一步中检索到的端点进行 API 调用并加载一些从后端设置。

目标:能够使用APP_INITIALIZER(例如 A 和 B)初始化两个服务,其中 B 依赖于 A。查看此 stackblitz以查看问题

我尝试过的事情:如果第二部分(能够向后端发出 API 请求)不在图片中,那么我设法使用 angularAPP_INITIALIZER来完成工作,然后我搜索了一些文章并找到了这篇文章在 Angular 中管理 App Initializers 之间的依赖关系,其中列出了 3 种方法,第 3 种是推荐的方法(因为它易于维护),但我并没有真正理解所有这些,我相信作者没有包含完整的代码实现每种方法(我确实知道作者要求是否提供代码示例,我可能是错的)。如果有经验的人可以分享他们的知识,我将非常感激。

PS:我没有在这里添加任何代码,因为我不太确定我尝试的是否明智,但很高兴添加一些代码。

Stackblitz1(单APP_INITIALIZER - https://stackblitz.com/edit/angular-puaw7a

[问题] Stackblitz2 (multiple APP_INITIALIZER) - https://stackblitz.com/edit/angular-7uqijv

Eli*_*seo 9

只是使用

useFactory: (appConfigSvc: ConfigService,settingsService:SettingsService) => {
        return () => {
          return appConfigSvc.loadConfig().then(()=>{
            return settingsService.loadConfig()
          });
        };
      }
Run Code Online (Sandbox Code Playgroud)

在 stackblitz 中查看您的分叉代码