我在有角度的5应用程序中使用APP_INITIALIZER,该应用程序通过API调用加载了一些配置。
我对APP_INITIALIZER的期望是,当应用程序首次加载时,它应该只运行一次,但是我每次导航到新路线时都看到我的APP_INITIALIZER逻辑正在运行。
APP_INITIALIZER是否在每次更改路线时都运行,有没有办法只运行一次? 伪代码:
workbench.action.terminal.kill
答案 0 :(得分:0)
您可以发布使用方式的代码吗?它应该只运行一次。将AppLoadModule添加到app.module导入
//appload.module.ts
import { NgModule, APP_INITIALIZER } from '@angular/core';
import { AppLoadService } from './app-load.service';
export function init_app(appLoadService: AppLoadService) {
return () => appLoadService.initializeApp();
}
@NgModule({
providers: [
AppLoadService,
{ provide: APP_INITIALIZER, useFactory: init_app, deps: [AppLoadService], multi: true }
]
})
export class AppLoadModule { }
@Injectable()
export class AppLoadService {
constructor(
) { }
initializeApp(): Promise<any> {
return new Promise((resolve, reject) => {
resolve();
// setTimeout(() => {
// //do something
// console.log("App Loaded");
// resolve();
// }, 1000);
});
}
}