问题标签 [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.

0 投票
1 回答
254 浏览

javascript - 在 AngularJS 中的 Promise 之间传递争论时出错

我正在构建一个包含四个功能的承诺链。承诺的目的是进行一些 API 调用。每个 API 调用都会影响以下一个,有些调用需要多个参数。

下面代码的基本流程是这样的:

  1. geocodeLocation是第一个函数,并将$scope.location输入地理编码到result包含latlng和的对象中formattedAddress
  2. getSearchCount是第二个需要result前一个函数的函数。该函数使用 Restangular 查询 API 并返回一个plucked_result对象。
  3. saveLocation函数需要resultplucked_result来创建一个新的位置,基于是否plucked_result.search_count小于1。该search_count变量由该函数返回。
  4. getPhotos需要resultandsearch_count参数。使用这些,它构建了一个被触发的 API 请求 URL。当响应返回时,将photos保存到数据库中。

错误发生在saveLocation函数内。返回的错误是:

这是代码(对发生的事情有一些评论):

这里的问题是:如何在所有函数之间传递result,plucked_result和变量?search_count

0 投票
2 回答
772 浏览

javascript - 用失败链接 Promise

看了这篇博客对promises的处理,我修改了失败的例子:

对于我的第一个失败函数,我注意到替换throwreturn会导致:

结果,我替换returnthrow达到预期的failure -> failure结果。

抛出的错误似乎没有被捕获。这是为什么?内部故障案例不应该捕捉到这个抛出的错误吗?

此外,在链式 Promise 中,只能通过抛出一个Error?

0 投票
2 回答
9080 浏览

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.

0 投票
1 回答
72 浏览

angularjs - 带有数据属性的承诺不起作用

我有一家工厂,承诺每隔 5 秒从 web 服务轮询数据。数据将由控制器获取并解析。轮询器从 app.run 启动。

问题是控制器似乎无法访问数据,这是为什么呢?

(只是看着它,我开始怀疑 LiveData var 是否是线程安全的)

控制器:

0 投票
4 回答
42634 浏览

jquery - 获取 Angular 的延迟状态?

使用 jQuery deferreds,我习惯于像这样检查当前状态:

有没有办法对 Angular deferreds 做同样的事情?(甚至更好的承诺)

0 投票
1 回答
6924 浏览

angularjs - AngularJS 从 ng-change 事件重新加载 ngTable

我正在使用以下内容填充 ngTable,效果很好:

我现在希望从设置新的 $scope.currentStateId 的 ng-change 事件中更新 ngTable,如下所示:

ClientService.query 使用正确的参数访问服务器并返回正确的数据,但 ngTable 未更新。

有人可以帮忙吗。

0 投票
2 回答
1596 浏览

javascript - 如何使用角度承诺作为字符串的一部分

我正在寻找有关处理承诺和字符串创建的通用解决方案。基本上是时间问题。此代码不是实际代码,但说明了我的问题和我尝试的解决方案。

我有两个需要组合的 json 对象。一个或两个对象可能具有需要来自 API 的某些信息的值。此信息用于创建标签,显示已组合的两个对象。

具有已定义标签的对象(无需查找):

具有动态标签的对象(以及通过服务 $http 请求获取标签的伪代码):

所需组合:

我的问题是 object2.label 直到创建组合对象之后才填充,特别是标签字符串。在视图中,我看到“男性 > 未定义”。我已经设法达到“男性> 68”,但这并没有真正帮助。当我不组合对象时,一旦解决了承诺,标签就会更新,并且没有问题让“阿拉斯加”和“男性”显示为两个唯一条目。当我从两个标签组合并创建字符串时,它发生得太快了。

object1 和 object2 在一个服务中创建,该服务处理读取数据并创建这些对象以供内部使用,然后此组合代码在另一个处理此类数据嵌套的服务中;所以我不能真正使用观察者来更新该值。

我已经尝试将标签设置为希望能够奏效的承诺,但它没有:

标签只是一个对象,里面有 {then()、catch()、finally()}。即使 then() 返回正确的值,我也无法找到获取实际返回值的方法。

我尝试使用数组和过滤器,这样直到最后一段时间我才真正创建字符串,这意味着由于字符串不是“真实的”,所以它应该在模型最终更新时工作(如单独显示对象时会这样做):

所以,我转向社区,看看我能在这里做什么。如何创建一个字符串,其中部分字符串基于承诺的结果?我想如果我使用 $resource,我可以设置 label: labelResource,并且 labelResource 最终会解析为我想要的实际数据(即使是我想要的数据的父对象也会有帮助)。不幸的是,还有其他逻辑对于 $resource 来说太复杂了,所以如果不进行一些重构,我就无法使用它。我希望能够将标签设置为 $q.deferred.result 之类的东西并让它全部解决(即使我仍然需要过滤器)。

无论如何,感谢您的收看!

0 投票
1 回答
1276 浏览

javascript - 服务调用后的angularjs表单动作

我想将POSThtml 表单中的数据传输到默认操作 url,但一个隐藏的输入取决于从服务调用返回的数据。当我ng-submit在完成$scope之前使用服务调用后不会更新POST。我不能使用 Ajax POST,因为在POST.

表格如下所示:

action字段中的 url 被正确填写。

控制器中的createOrder功能是这样的:

问题是隐藏的输入 orderNumber 在打开实际操作 URL 之前没有被填充。因此,发布的数据不正确。

关于如何解决这个问题的任何想法?我正在使用 angularjs 1.2.16。

0 投票
1 回答
1245 浏览

javascript - 数据库选择服务中的所有角度websql,获取数组

如何将该代码投入使用?(这是来自https://github.com/paulocaldeira17/angular-websql)我的意思是我想传递表名,然后与用户一起获取数组。我认为我应该使用承诺,但我不知道如何开始。

0 投票
2 回答
1961 浏览

angularjs - AngularJS 使用 $q 承诺更新服务/模型更改的视图

我正在尝试从服务加载数据并使用 $q 更新视图,但它不起作用。如果我将 http 调用放在控制器中,它会起作用,但我希望它成为服务的一部分。

有什么帮助吗?另外,有没有比承诺更好的方法来做到这一点?

演示和代码如下。

----------小提琴演示链接----------

看法

控制器

服务