我正在尝试以异步方式初始化角度模块,但不知道该怎么做:
@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
不是异步