Я работаю над приложением Angular 7 с версией es6 Javascript и Swagger.
Я пытаюсь добавить конфигурацию для APP_INITIALIZER в app.module:
export class SettingsProvider {
private config: AppConfig;
constructor(private httpClient: HttpClient) {}
public loadConfig(): Promise<any> {
return this.httpClient.get(`assets/configs/config.json`).pipe(
map(res => res as AppConfig))
.toPromise()
.then(settings => {
this.config = settings;
});
}
public get configuration(): AppConfig {
return this.config;
}
}
вapp.module:
{ provide: APP_INITIALIZER, useFactory: init, deps: [SettingsProvider], multi: true },
{ provide: API_BASE_URL, useFactory: baseApiUrlSetting, deps: [SettingsProvider], multi: true },
export function init(settingsProvider: SettingsProvider) {
return () => settingsProvider.loadConfig();
}
export function baseApiUrlSetting(settingsProvider: SettingsProvider) {
return settingsProvider.configuration.baseApiUrl;
}
Все работает отлично, пока я не введу токен API_BASE_URL.Компилятор, вероятно, не завершил загрузку конфигов, поэтому значение settingsProvider всегда равно нулю.
Невозможно прочитать свойство 'baseApiUrl' из неопределенного
Кто-нибудь знаетвозможное решение для этого?Спасибо!