gpt4 book ai didi

Angular 2在引导之前从服务器获取配置

转载 作者:太空狗 更新时间:2023-10-29 18:16:58 26 4
gpt4 key购买 nike

我需要在应用程序启动之前从服务器获取配置。我能够在我的主要 ngModule 的提供者中使用它来做到这一点:

{
provide: APP_INITIALIZER,
useFactory: (links: Links) => () => links.init(),
deps: [Links, Http],
multi: true
}

链接服务:

init(): Promise<any> {
var observable = this.http.get('someUrl').map(res => res.json());
observable.subscribe(res => {
this.config = res;
});
return observable.toPromise();
}

此代码在应用程序 Bootstrap 之前执行,但在我的应用程序请求 Links.config 之前,服务器的响应不存在。在 Promise 得到解决之前,如何强制应用程序不启动?我试过 promise.resolve(),但没有用。

我认为我使用提供程序的方式强制应用程序使用相同的链接实例,而且我认为数据已经存在于那里。请问我做错了什么?

最佳答案

在我的代码中,我做的完全一样,唯一的区别是我在映射之前将请求转换为 Promise。

public load(): Promise<void> {
let headers = new Headers({ 'Content-Type': 'application/json' });
let url = this.urls.settings;

return this.http.get(url, { headers }).toPromise().
then(configs => {
this.startupSettings = configs.json();
}).catch(err => {
log(err);
});
}

......................................

    {
provide: APP_INITIALIZER,
useFactory: (config: StartupConfigurationService) => () => config.load(),
deps: [StartupConfigurationService],
multi: true
}

我不确定它是否有意义,但尝试可能会解决

关于Angular 2在引导之前从服务器获取配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40075781/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com