AngularJS promise in app.run()

AngularJS promise in app.run()

本文关键字:run app promise in AngularJS      更新时间:2024-02-01

我正在做angularJs和typescript项目。在启动客户端应用程序和加载UI之前,我必须进行同步http调用并从服务器获取一些数据。我在网上搜索,看到每个人都在谈论承诺,嗯,好吧,为什么不呢。所以我在app.run()中使用promise(进行$http调用并使用$q返回promise)。也许我什么都没遗漏,因为这根本不起作用。Angular启动app.config(),然后是app.run(),…但是Angular不会在启动app.run之前等待app.config完成。所以我的第一个承诺是在app.run中启动,在它解决之前,Angular尝试实例化控制器。。。我不想创建新的服务httpSynchronous,但我没有任何其他想法。

Angular不支持.config.run函数中的异步操作。如果你想推迟申请,有两种方法:
  • 第一种方法是通过使用angular.bootstrap()手动启动整个应用程序来延迟整个应用程序。但你所做的一切都在angular之外,所以你只能访问普通的JavaScript
  • 第二种方法是使用路由的resolve属性。如果您使用像角度路由段或ui路由器这样的路由器,您可以定义一个具有解析的顶级路由/状态,该解析将在应用程序加载时解析(如果您强制完全重新加载路由)