angular – 引导期间的异步HTTP调用
发布时间:2020-12-17 17:16:49 所属栏目:安全 来源:网络整理
导读:我目前正在构建一个Angular 2组件库,以便将来的UI项目可以共享实现标准功能的代码.我的一个要求是这些UI应用程序在启动时需要来自服务器的一些数据.我想在我的库中封装它. 因此,当我从我的库中注入一个服务到我的应用程序时,我想对服务器端点执行http调用以
我目前正在构建一个Angular 2组件库,以便将来的UI项目可以共享实现标准功能的代码.我的一个要求是这些UI应用程序在启动时需要来自服务器的一些数据.我想在我的库中封装它.
因此,当我从我的库中注入一个服务到我的应用程序时,我想对服务器端点执行http调用以获得一些配置.这可能在实例化时发生. 我不确定这是不是一个好主意,Angular 2引导程序是否会等待注入服务来完成http调用? 我已经看到了几种不同的异步引导Angular 2应用程序的方法,但我不希望在我的应用程序中包含此代码,而是保留在我的库中.我试图隐藏我的库中的这个过程的细节,以便其他开发人员不会试图破解它. 解决方法
您可以利用APP_INITIALIZER服务.有了它,应用程序将等待返回的promise在实际启动之前得到解决.
这是一个示例: provide(APP_INITIALIZER,{ useFactory: (service:SomeService) => () => service.init(),deps:[GlobalService,HTTP_PROVIDERS],multi: true }) init方法想要这样的东西: init():Promise<Site> { var promise = this.http.get('config.json').map(res => res.json()).toPromise(); promise.then(config => this.devServer = config.devServer); return promise; } 有关更多详细信息,请参阅github上的此问题: > https://github.com/angular/angular/issues/9047 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |