问题标签 [angular-promise]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angularjs - ui路由器解析链接承诺
使用 ui-router 更改状态时我需要一些数据,这些数据相互依赖,所以我必须使用链接承诺
我的状态是
它返回未定义。谁知道为什么?
angularjs - AngularJS - 如果有新请求,取消以前的 $resource $promises
我有一个包含 2 个字段的表单:用户名和密码。
当我的用户名模型更改时,我向 API 发出请求以执行一些检查。
当我以 t 毫秒间隔对工厂进行 x 次调用时$resource
,我想知道是否:
- 在我的控制器中,最后
$promise
收到的将对应于用户最后一次输入。 - 之前的承诺将被取消。
我试图找到一种方法来模拟我的 API 调用延迟(因为我在本地工作并且每个响应都是即时的),但我只能找到$http
服务示例。
这是一个 jsFiddle 来公开这个案例:http:
//jsfiddle.net/Jfwh9/1/
HTML
应用程序
谢谢!
javascript - 在 AngularJS 中管理受限页面的拦截器
几天前我刚开始使用 AngularJS,我的拦截器遇到了问题,它从服务器响应中拦截 401 状态。
当返回 401 并在该事件上触发重定向时,它会广播类型为“loginRequired”的消息。
问题是,如果我在未登录的情况下尝试访问受限页面,我会在重定向到登录页面之前看到页面闪烁片刻。我仍然是异步东西,承诺等方面的初学者。有人能指出我做错了什么吗?
这是我的拦截器。如您所见,它非常简单,但我将其精简以解释我的观点,并且在进一步开发之前尝试理解事物。
拦截器
我的拦截器的注入
受限页面的路由
受限页面控制器
$rootScope 事件观察器
我的问题显然与我处理拦截器和 $q 的方式有关。我在github上找到了另一种创建拦截器的方式,但这不是官方文档使用的方式,所以我认为这可能是旧方式,在我看来它不如将它放在工厂中那么干净。他只是在他的模块的配置函数中定义了路由之后才放了这段代码。但是这段代码有效,我没有得到页面闪存。
我在 Github 上找到的另一种方法
但我的目标不仅仅是“让它发挥作用”,而且我讨厌“如果它没有坏就不要修复它”的口头禅。我想了解我的代码有什么问题。谢谢!
javascript - 如何在 AngularJS 中中断/返回 Angular 异步调用
我有以下项目结构:
- PageController.js
- BusinessService.js
-NetworkManager.js
在我的 PageController 我有以下调用:
在我的业务服务中:
http 调用正在NetworkManager
课堂上进行。所以这里的问题是,当我没有用户数据时,我想中断通话,所以我使用reject
.
这将返回一个错误:Cannot read property 'then' of undefined
关于PageController
.
那么,考虑到我的情况,如果我没有 userData,我想取消请求,我该如何完成呢?
javascript - AngularJS $q - 返回直接解析
我使用一种期望得到承诺的方法。但是,有时会promise
立即解决。目前,如果promise
立即解决,我仍然通过承诺,并使用以下内容:
如果有办法,直接返回解析,例如类似的内容return $q.resolve()
并跳过那两行?
angularjs - AngularJS - 为什么承诺会触发控制器重新加载?
我有一个关于 AngularJS 的问题;这是我不理解的行为——也就是说,我曾预料到一件事,但得到了完全不同的东西。现在意外的行为本身可能是正确的,但我想了解它为什么会发生。
鉴于这个非常粗略的代码(这是充当 POC 的实际代码):
到目前为止,一切都很好; 我有一个scrapy 函数,当我ng-click
按下某个按钮时,会调用scrapy 函数,它会触发一个promise,一秒钟后列表会收到一个带有插入值的推送。
正确的?至少; 那是我的假设...
结果发生了其他事情,我不知道为什么,或者背后的原因是什么。
当我在浏览器中启动我的应用程序并单击按钮两次时;这是 console.log 告诉我的:
这里最大的问题是:
- 为什么在 promise resolve 期间会重新执行控制器功能?
- 我怎样才能阻止这种情况发生?
[编辑]
根据要求;HTML(原样):
顺便说一句:这是 yeoman 生成的,使用routeProvider
[/编辑]
javascript - 简化 Javascript 中的 Promise
以下代码片段是否等效?
版本 1
版本 2
javascript - AngularJS 承诺和嵌套控制器
我有以下困境:
如果我有两个这样的嵌套控制器:
在 Controller1 我有一个字段
这是承诺的结果(对外部服务器的异步调用)。到目前为止,一切都很好。但是我该如何处理以下情况:
我需要在Controller2中使用
就在控制器被触发时。如何设置第二个控制器,等待第一个控制器中的承诺得到解决,然后才评估该 var userName 分配?(否则我会得到 $scope.$parent 未定义)
angularjs - Iterate over returned angular resource in controller
I have a controller that accesses a resource Tag
like so:
which resolves to something like this:
For this particular controller, the returned tags should have an additional attribute "active": true
, like { name: "tag1", label: "Tag1", active: true }
.
How can I iterate over the returned promise once it is resolved to add this boolean?
javascript - 如何在复杂的资源加载序列中正确链接承诺?
在角度代码中,我有一个这样的链式承诺:
这些函数中的每一个都返回一个promise,它从资源中加载东西,并在错误和成功时额外修改$scope,例如:
我打算在控制器初始化中的代码中使用,如下所示:
但是,这并不像我想的那样工作。理想情况下,消息“在所有承诺解决后我会在这里做某事”必须在所有承诺解决后出现。相反,我可以看到它出现的时间早于来自列出 ensureTypesLoaded 的函数中已解决的承诺的消息。
我想创建一个函数 ensureTypesLoaded 这样,即:
- 它返回一个承诺,当所有链式加载都被解决时,该承诺被解决;
- 如果任何“内部”承诺失败,该函数不应继续下一次调用,而是返回被拒绝的承诺。
- 显然,如果我调用 ensureTypesLoaded().then(...),则 then() 中的内容必须在 ensureTypesLoaded 中的所有内容都解决后调用。
请帮助我正确构建链式承诺。