Я пытаюсь инициализировать угловой модуль асинхронным способом и не знаю, как это сделать:
@NgModule({
declarations: [AppComponent, HomeComponent],
imports: [
OAuthModule.forRoot({
resourceServer: {
allowedUrls: [appConfig.apiBaseURL()],
sendAccessToken: true
}
}),
...
],
bootstrap: [AppComponent]
})
Вот мой appConfig это:
export let appConfig = {
load: () => {
axios.get('/appsettings.json')
.then(function (response) {
appConfig._apiBaseURL = response.data.apiBaseURL;
})
.catch(function (error) {
console.log(error);
});
},
_apiBaseURL: undefined,
apiBaseURL: () => {
if (appConfig._apiBaseURL) {
return appConfig._apiBaseURL;
}
appConfig.load();
return appConfig._apiBaseURL;
}
};
Как вы можете видетьСвойство apiBaseURL
загружается асинхронно из вызова Http.Затем он используется в одном из модулей импорта.Поскольку это выполняется асинхронно, когда приложение запускается, _apiBaseURL
не определено ...
Как загрузить его перед использованием?Я пытался переключить все в асинхронное / ожидание и использовать его как
await appConfig.apiBaseURL()
Но @NgModule
не является асинхронным