方案是,我们在主应用程序中将Angular 6库(我们构建)作为NPM软件包包括在内。主应用程序使用Angular CLI环境,每个环境具有特定的配置(照常)。当前,该库的配置类似于app.module.ts中的MyModule.forRoot( environment.whateverConfig )
。
问题是environment.whateverConfig
中的某些设置需要通过调用我们正在使用APP_INITIALIZER
的服务器来提供。但是问题是forRoot()
在APP_INITIALIZER
提供者中的诺言完成之前就执行了,因此该库无法获得正确的配置。
似乎APP_INITIALIZER
非常适合在应用程序引导之前执行操作,而不是在加载库/模块之前执行操作。
为此寻找解决方案或解决方法。
谢谢。
答案 0 :(得分:1)
我的previous answer to a similar question应该可以为您提供帮助。 看看那里的异步初始化方法。
要点是,除了获取配置之外,您还可以获取配置的Observable,然后在要使用该配置的任何地方,对可观察的配置进行flatMap(又称mergeMap)。从本质上讲,这使配置的使用者可以等待其加载。