加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读