javascript – app.run()中的AngularJS承诺[复制]

前端之家收集整理的这篇文章主要介绍了javascript – app.run()中的AngularJS承诺[复制]前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > AngularJS : Initialize service with asynchronous data10个
我正在研究angularJs和typescript项目.在启动客户端应用程序和加载UI之前,我必须进行同步http调用并从服务器获取一些数据.我在互联网上搜索,看到每个人都谈论承诺,huumm好吧为什么不呢.所以我在app.run()中使用promise(make $http call并使用$q来返回promise).也许我什么都没有,因为这根本不起作用. Angular启动app.config(),然后app.run(),…但Angular不会在启动app.run()之前等待app.config()完成.所以我的第一个承诺是在app.run()中启动,在它解决Angular尝试实例化控制器之前……我不想创建新的服务调用httpSynchronous,但我没有任何其他想法.

解决方法

Angular不支持.config和.run函数中的异步操作.如果您想延迟申请,有两种方法

>第一个是通过使用angular.bootstrap()手动启动它来延迟整个应用程序.但是你做的任何事情都是有角度的,所以你除了香草JavaScript之外别无他法.
>第二个是使用路由的resolve属性.如果您使用类似angular route segmentui router的路由器,则可以定义具有解析的顶级路由/状态,该解析将在您的应用程序加载时解析(如果您强制完全重新加载路由).

猜你在找的JavaScript相关文章