0
对于我们的应用程序,我们需要从外部URL读取我们的配置,例如http://myhost/config.json。这个配置文件包含一个apiUrl,我们应该使用所有其他http请求(Rest)。加载外部配置,并将此配置用于另一个http调用
我试图使用APP_INITIALIZER与调用我们的服务来加载配置的工厂方法。这会返回一个Observable。
当我们打开我们的页面时,会执行获取请求以获取我们所有的客户。这是通过一个http请求完成的,该请求应该使用配置中的apiUrl。
但是,系统不会等到第一次调用(获取配置)准备就绪,因此apiUrl尚不可用。
一种选择是包装每次调用类似(伪):
this.configService.getConfig().subscribe(config => {
this.customerService.getCustomers(config);
})
这不是因为者优先其他开发商应该只是直接调用的CustomerService,而不应理会配置。
当我们可以在构造函数中注入Config对象并直接使用它时,应该会很好。这可能吗?
如果不是,我如何确保配置可用于所有其他API调用(启动时加载)?像一个同步的http.get请求。
角版本4.3.4
请给出一个[mcve],APP_INITIALIZER中的一个承诺肯定应该得到解决。 – jonrsharpe
它已经得到解决,但它在第二次获得客户电话后结束 – Stefan
我的意思是在应用程序的其他部分开始之前 - 如果这不起作用,请在GitHub上提出问题(请参阅https://github.com/angular/)角/问题/ 14615)。 – jonrsharpe