问题标签 [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 投票
3 回答
387 浏览

javascript - AngularJS:这是链接承诺的正确方法吗?

我有一个函数foo调用另一个函数moreFoo并且我想将函数调用包装在 Promise 中,以便foo返回的 Promise 在moreFoo解决后返回。这是我的解决方案:

然后输出:

它似乎按预期工作。这是链接这些承诺的正确/最佳方式吗?

0 投票
2 回答
53 浏览

javascript - 探索/浏览承诺链

给定一个 promise 对象,是否可以浏览附加到它的不同功能?

所以有这种情况(使用角度):

有没有办法访问:

  • 访问该n功能
  • 在当前链之间添加一个函数

    /li>
0 投票
1 回答
79 浏览

angularjs - AngularJS:承诺的范围(不是$范围)

我目前正在使用 angularjs 的 $http 服务从本地托管的 json 文件中检索数据。然后将该文件中的数据发送到控制器并通过 ui.router 在视图上显示为状态,在该视图中可以修改数据。然后,从该状态修改的数据显示在不同的状态,该状态以 json 格式显示该数据,然后由用户复制并粘贴到文档中。但是,每次更改状态时,修改后的数据似乎都会恢复到原始数据,因为每次状态更改时都需要控制器重新加载原始数据。有什么办法可以让数据只加载一次?

服务.js

客户控制器.js

0 投票
5 回答
26525 浏览

javascript - 使用 AngularJS 立即返回一个已解决的承诺

我试图了解 JavaScript(特别是 AngularJS)中的承诺。

我在服务中有一个函数,我们称之为它fooService,它检查我们是否加载了一些数据。如果有,我只希望它返回,如果没有,我们需要加载数据并返回一个承诺:

我有另一个函数,然后调用如下update函数fooService

我的问题是,如果我们不需要在update函数中加载数据,则不会返回承诺,因此.then()不会在我的其他函数中调用。这里应该采用什么方法-基本上,update()如果我们不需要从 Restangular 调用中获取数据,我想立即从函数中返回已解决的承诺?

0 投票
2 回答
79 浏览

angularjs - $http 和 promises 和 POST

给定如下代码:

我的理解是,如果我像这样在返回的承诺上调用 .then() :

来自适当的 .success() 和 .error() 回调的返回值被传递给 .then() 回调。

但是,我没有看到我期望的行为。 使用 GET 它可以按预期工作。有了 POST,就没有那么多了。我的假设是否应该像正常的 deferred \ promise 一样准确?它在哪里记录(除了来源)

0 投票
1 回答
102 浏览

javascript - 角度承诺在服务中的响应问题

我第一次使用 angular 1.2.18。我将它与 rails 3.2 和 coffeescript 一起使用。我正在尝试在服务中使用承诺来获取一些数据,然后我将使用这些数据来填充模板。我的代码如下所示:

当我尝试这样做时,我得到“未定义不是函数”并且没有有用的堆栈跟踪。我不确定哪个部分未定义。我曾考虑在 config() 中执行此操作,但直到运行时我才知道 $http.get(url) 中的 url 是什么。任何有关以“角度方式”执行此操作的帮助或建议将不胜感激。

0 投票
2 回答
1225 浏览

javascript - 函数返回不等待 angularjs 承诺

我对 angularjs 的承诺有疑问,也许有人可以指出我正确的方向。我的控制器中有一个验证函数,如果一切正常,它应该返回 true,如果有问题,则返回 false。单页应用程序在这个假设上工作,所以我不能轻易改变这个假设......

一切正常,直到最近需求发生变化,我正在尝试检查服务器以查看之前系统中是否使用过 id 值。因此我必须对服务器进行异步调用并检查它,你可以看到我使用了 $scope.scopeData.customer.checkForDuplicateIdentity() 方法并承诺让异步调用工作。

调用工作正常我测试过,唯一的问题是我的 customerValidation 方法在异步调用完成之前完成并一直返回 false。也就是说

return isValidated 行总是在 isValidated 变为真之前执行。

我不能让外部返回语句等待异步调用完成。如果我从内部函数返回 isValidated,它不会将值返回给 customerValidation 函数。有人可以告诉我如何实现这一目标吗?

0 投票
1 回答
1053 浏览

javascript - angularjs中的模拟承诺

我试图嘲笑角度承诺,但我遇到了一些错误,例如 undefined is not a function 评估 'spyOn' fileUploadService

我的控制器代码是

服务代码,我从我的控制器调用这个方法

测试控制器代码

谢谢

0 投票
1 回答
5393 浏览

javascript - AngularJS:将附加参数传递给链式承诺

我想链接一些服务返回的承诺。只要某些返回承诺的方法不需要额外的参数,这就行得通。这是我的例子:

这按预期工作。但是如果我的服务second需要一个额外的参数val来完成它的工作呢?使用上面的方法, 的值val"first resolved",因为它是从 中获取的解析值first

有没有办法,没有像这样嵌套匿名函数:

我正在考虑使用$q.all,但恕我直言,您无法为您的承诺指定订单。

0 投票
2 回答
684 浏览

javascript - $http service in AngularJS

I am new to AngularJS and I am trying to put together a practice WebApp, In the earlier versions of My App I had a single Controller and I used the $http Service to fetch Data from a JSON file like so

The $http Service worked fine, Then as I progressed I had Multiple Controllers and to Share the Data between the Controllers I moved the $http Service to a Factory like so

And here is the HTML

I don't know why for some reason the Data is not being Displayed after I moved the $http Service to a Factory, What am I doing wrong, I don't see any errors in the Console