当前位置: 首页 > 知识库问答 >
问题:

app.run()中的AngularJS promise[duplicate]

金阳曜
2023-03-14

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

共有1个答案

慕容聪
2023-03-14

Angular不支持.config.run函数中的异步操作。如果你想延迟申请,有2种方法:

  • 第一种是通过使用Angular.bootstrap()手动启动应用程序来延迟整个应用程序。但您所做的任何事情都是angular之外的,因此您只能访问常规JavaScript。
  • 第二种方法是使用路由的resolve属性。如果您使用路由器,如angular route segment或ui router,您可以定义一个带有解析的顶级路由/状态,该解析将在应用程序加载时解析(如果您强制完全重新加载路由)。
 类似资料:
  • 问题内容: 如何使用以及在哪里使用?在模块定义之后,之后还是之后? 我采用的是BreezeJS Angular Q,它询问是否可以在函数中运行某些代码。 问题答案: 这是呼叫顺序: 指令的编译功能(如果在dom中找到) 指令的链接功能(同样,如果找到) 这是一个简单的演示,您可以在其中观看每个示例的执行情况(并根据需要进行实验)。 从Angular的模块文档中: 运行块 -创建注射器后执行,并用于

  • 我在解决使用q.all美元的promise时遇到了问题,有人能帮我吗? 当我有一个promise时,以下几点很好: 但是我需要进行多个ajax调用,所以我使用了$q.all如下所示: 现在我需要一个接一个地解析$q中的所有promise,就像我解析的单promise一样,如上所示。因此,我使用了下面所示的代码,但它没有按预期工作。我开始怀疑我在$q.all(promise)中使用的逻辑来解决pro

  • 问题内容: 我正在阅读Flask文档。有人告诉我,可以使服务器公开可用。 这是什么意思 ?如何在另一台计算机(仅在我自己的计算机上)中访问服务器? 问题答案: 你可以点击flask应用程序正在运行的机器的IP地址,例如192.168.1.100,在同一网络上不同机器上的浏览器中,你就在那。但是,如果你在其他网络上,则将无法访问它。防火墙或VLans可能会导致你无法访问应用程序。如果该计算机具有公共

  • 问题内容: 我在AngularJS .run下有以下代码,该代码在我的本地开发计算机上可以正常运行,但在上传到客户端服务器后将无法工作…经过几次测试,很明显,在加载控制器时,事件并未尚未触发,因此取决于此事件的控制器中的大多数功能均无法正常工作。有人可以告诉我我在做什么错以及如何解决吗?谢谢 问题答案: 你总是要有一个比赛条件。我可以选择几种替代方法: 1)使用服务。我并不是这个选项的忠实支持者,

  • 问题内容: 我知道我可以将Flask与Apache或其他Web服务器链接。但是,我当时正在考虑将Flask作为独立的服务器运行,同时为多个客户端提供服务。 这可能吗?我是否需要处理产生多个线程并进行管理? 问题答案: 接受**options转发给它的其他关键字参数()-其中两个参数是(布尔值)和(你可以将其设置为大于1的数字以使werkzeug产生多个进程来处理请求)。 默认情况下为Flask 1

  • 我正在使用JooQ在Aurora MySQL上执行CRUD操作。 我有以下场景: 如果由于重复密钥异常导致插入失败,请再次重试相同的操作,否则忽略该异常 有 启用OnDuplicateKeyUpdate时,如果记录存在,它似乎会盲目更新数据库中的记录。我的用例是,如果数据库中存在记录,则在满足更新条件的情况下更新记录。 我可以在插入和更新的两个单独调用中做到这一点,但是有没有办法在单个调用中做到这