如何等待变量设置为角度

时间:2019-02-10 08:26:32

标签: javascript angular

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;

}

想在国家/地区变更时重新初始化应用程序。

2 个答案:

答案 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的变量的真实值。