问题标签 [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.
javascript - 在 AngularJS 中的 Promise 之间传递争论时出错
我正在构建一个包含四个功能的承诺链。承诺的目的是进行一些 API 调用。每个 API 调用都会影响以下一个,有些调用需要多个参数。
下面代码的基本流程是这样的:
geocodeLocation
是第一个函数,并将$scope.location
输入地理编码到result
包含lat
、lng
和的对象中formattedAddress
getSearchCount
是第二个需要result
前一个函数的函数。该函数使用 Restangular 查询 API 并返回一个plucked_result
对象。saveLocation
函数需要result
和plucked_result
来创建一个新的位置,基于是否plucked_result.search_count
小于1
。该search_count
变量由该函数返回。getPhotos
需要result
andsearch_count
参数。使用这些,它构建了一个被触发的 API 请求 URL。当响应返回时,将photos
保存到数据库中。
错误发生在saveLocation
函数内。返回的错误是:
这是代码(对发生的事情有一些评论):
这里的问题是:如何在所有函数之间传递result
,plucked_result
和变量?search_count
javascript - 用失败链接 Promise
看了这篇博客对promises的处理,我修改了失败的例子:
对于我的第一个失败函数,我注意到替换throw
为return
会导致:
结果,我替换return
为throw
达到预期的failure -> failure
结果。
抛出的错误似乎没有被捕获。这是为什么?内部故障案例不应该捕捉到这个抛出的错误吗?
此外,在链式 Promise 中,只能通过抛出一个Error
?
javascript - How do I use Bluebird with Angular?
I tried using Angular with Bluebird promises:
HTML:
JS:
[Fiddle]
However, no matter what I tried, it kept staying "$q promises"
and did not update. Except if I added a manual $scope.$apply
which I'd rather avoid.
How do I get Bluebird to work with AngularJS?
(I know it's possible since $q does it)
I'm using Bluebird 2.0 which I got here.
angularjs - 带有数据属性的承诺不起作用
我有一家工厂,承诺每隔 5 秒从 web 服务轮询数据。数据将由控制器获取并解析。轮询器从 app.run 启动。
问题是控制器似乎无法访问数据,这是为什么呢?
(只是看着它,我开始怀疑 LiveData var 是否是线程安全的)
控制器:
jquery - 获取 Angular 的延迟状态?
使用 jQuery deferreds,我习惯于像这样检查当前状态:
有没有办法对 Angular deferreds 做同样的事情?(甚至更好的承诺)
angularjs - AngularJS 从 ng-change 事件重新加载 ngTable
我正在使用以下内容填充 ngTable,效果很好:
我现在希望从设置新的 $scope.currentStateId 的 ng-change 事件中更新 ngTable,如下所示:
ClientService.query 使用正确的参数访问服务器并返回正确的数据,但 ngTable 未更新。
有人可以帮忙吗。
javascript - 如何使用角度承诺作为字符串的一部分
我正在寻找有关处理承诺和字符串创建的通用解决方案。基本上是时间问题。此代码不是实际代码,但说明了我的问题和我尝试的解决方案。
我有两个需要组合的 json 对象。一个或两个对象可能具有需要来自 API 的某些信息的值。此信息用于创建标签,显示已组合的两个对象。
具有已定义标签的对象(无需查找):
具有动态标签的对象(以及通过服务 $http 请求获取标签的伪代码):
所需组合:
我的问题是 object2.label 直到创建组合对象之后才填充,特别是标签字符串。在视图中,我看到“男性 > 未定义”。我已经设法达到“男性> 68”,但这并没有真正帮助。当我不组合对象时,一旦解决了承诺,标签就会更新,并且没有问题让“阿拉斯加”和“男性”显示为两个唯一条目。当我从两个标签组合并创建字符串时,它发生得太快了。
object1 和 object2 在一个服务中创建,该服务处理读取数据并创建这些对象以供内部使用,然后此组合代码在另一个处理此类数据嵌套的服务中;所以我不能真正使用观察者来更新该值。
我已经尝试将标签设置为希望能够奏效的承诺,但它没有:
标签只是一个对象,里面有 {then()、catch()、finally()}。即使 then() 返回正确的值,我也无法找到获取实际返回值的方法。
我尝试使用数组和过滤器,这样直到最后一段时间我才真正创建字符串,这意味着由于字符串不是“真实的”,所以它应该在模型最终更新时工作(如单独显示对象时会这样做):
所以,我转向社区,看看我能在这里做什么。如何创建一个字符串,其中部分字符串基于承诺的结果?我想如果我使用 $resource,我可以设置 label: labelResource,并且 labelResource 最终会解析为我想要的实际数据(即使是我想要的数据的父对象也会有帮助)。不幸的是,还有其他逻辑对于 $resource 来说太复杂了,所以如果不进行一些重构,我就无法使用它。我希望能够将标签设置为 $q.deferred.result 之类的东西并让它全部解决(即使我仍然需要过滤器)。
无论如何,感谢您的收看!
javascript - 服务调用后的angularjs表单动作
我想将POST
html 表单中的数据传输到默认操作 url,但一个隐藏的输入取决于从服务调用返回的数据。当我ng-submit
在完成$scope
之前使用服务调用后不会更新POST
。我不能使用 Ajax POST
,因为在POST
.
表格如下所示:
该action
字段中的 url 被正确填写。
控制器中的createOrder
功能是这样的:
问题是隐藏的输入 orderNumber 在打开实际操作 URL 之前没有被填充。因此,发布的数据不正确。
关于如何解决这个问题的任何想法?我正在使用 angularjs 1.2.16。
javascript - 数据库选择服务中的所有角度websql,获取数组
如何将该代码投入使用?(这是来自https://github.com/paulocaldeira17/angular-websql)我的意思是我想传递表名,然后与用户一起获取数组。我认为我应该使用承诺,但我不知道如何开始。
angularjs - AngularJS 使用 $q 承诺更新服务/模型更改的视图
我正在尝试从服务加载数据并使用 $q 更新视图,但它不起作用。如果我将 http 调用放在控制器中,它会起作用,但我希望它成为服务的一部分。
有什么帮助吗?另外,有没有比承诺更好的方法来做到这一点?
演示和代码如下。
----------小提琴演示链接----------
看法
控制器
服务