【发布时间】:2019-12-05 01:59:35
【问题描述】:
我有一项服务,当 Angular 启动时,它会获取文档并在 Map<string, Document> 中提供。
HttpClient 用于获取文档。
是否可以延迟构建服务,直到收到所有文件。
换句话说,我们如何确保在构造函数时像这样注入服务:
constructor(service:Service)
服务启动的所有异步操作都已完成,所有文档都可用?
我认为这是一种反模式,我们应该使用 RxJS,但我想我会检查一下。
【问题讨论】:
-
如果您必须在其他任何事情之前拥有数据(例如应用程序广泛依赖的远程加载配置),您可以使用 APP_INTIALIZER,但如果它可以等待,只需使用 rxjs 和主题等等
-
是的,我想我可能只会使用主题。我可以在
Promise.all完成时发出数据。 -
如果您使用的是 http 客户端,您可能应该使用 forkJoin 而不是转换为 Promise
标签: javascript angular typescript http fetch