AngularJS promise in app.run() [duplicate]

时间秒杀一切 提交于 2019-11-30 04:16:50

问题


I'm working on angularJs and typescript project. I have to make synchronous http call and get some data from server before I launch my client app and load UI. I search on internet and see everybody speak about promise, huumm okay why not. So I use promise (make $http call and use $q to return promise) in my app.run(). Maybe I'm missing nothing because this is not working at all. Angular launch app.config(), then app.run(), ... But Angular does not wait app.config() finish before launch app.run(). So my first promise is launch in app.run() and before it resolve Angular try to instantiate controller... I don't want to create new service call httpSynchronous but I haven't any other ideas.


回答1:


Angular does not support asynchronous actions in .config and .run functions. If you want to delay your application, there are 2 ways:

  • The first one is to delay your whole application by using angular.bootstrap() to manually start it. But anything you do is outside angular, so you don't have access to anything but vanilla JavaScript.
  • The second one is to use the resolve property of your routes. If you use a router like angular route segment or ui router, you can define a top route / state with a resolve which would be resolved when your application loads (and if you force a full reload of your route).


来源:https://stackoverflow.com/questions/28609205/angularjs-promise-in-app-run

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!