AppInitializer类
dataloadcomplete = false;
initializeApp() {
let promise = new Promise((resolve, reject) => {
Promise.all(promise).then(
(res) => { dataloadcomplete = true; resolve() },
(err) => { reject(); },
);
return promise;
}
可以激活路线
canActivate(route: ActivatedRouteSnapshot): Promise<Boolean> {
// if data load completed return true else false;
}
想在国家/地区变更时重新初始化应用程序。
答案 0 :(得分:0)
由于显示的代码很少,因此很难建议最佳的操作方法,因为有很多选择。
首先,在任何情况下,请确保保存数据的类(在您的示例中为Class 1)是可注入服务。将其注入需要访问数据的任何组件中。
如果您需要加载一些数据并等待路由到特定组件,直到该数据被加载,则可以使用路由解析器。
如果在启动应用程序之前需要等待应用程序的任何加载,则可以使用APP_INITIALIZER:Angular: How to correctly implement APP_INITIALIZER
如果您想更好地管理应用程序状态,请考虑将Redux库用于Angular,称为NgRx。您可以使用它来管理应用程序中的数据流。
答案 1 :(得分:0)
如果您有多个HTTP调用,我想,您可以使用forkJoin将所有调用检索到一个点,然后使用EventEmitter并从类2的函数中捕获事件。等待设置类1的变量。
您也可以在Angular中使用interval,并等到获得类2的变量的真实值。