Как инициализировать угловой модуль в асинхронном режиме - PullRequest
0 голосов
/ 19 сентября 2018

Я пытаюсь инициализировать угловой модуль асинхронным способом и не знаю, как это сделать:

@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 не является асинхронным

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...