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

javascript - AngularJS + $q,在多个 ajax 调用完成后做一些事情

我需要在页面加载时加载一些数据,然后执行任务。为了获得我想要的数据,我执行了多个不同的 ajax 调用。但为了执行任务,我需要确保所有的 ajax 调用都已完成。这是我到目前为止所做的:

我的问题是所有ajax调用完成后块中的代码then(...);没有执行。我在控制台中得到类似的东西:

我一定做错了什么。我怎样才能让它按我想要的方式工作?


编辑:我尝试了以下答案,就像答案中提到的那样,但我仍然面临同样的问题。

0 投票
2 回答
53 浏览

angularjs - 最后一个链式承诺没有运行

我已经链接了一些我想按特定顺序执行的方法。第二种方法deviseLogin()返回一个 URL,应该在下一个方法中传递redirect(url)

第一种和第二种方法运行,但我从来没有从最后一个听到任何消息redirect(url)。你能看出我做错了什么吗?

0 投票
2 回答
5593 浏览

javascript - Angularjs,等待一个嵌套的承诺

我有 3 个服务返回 3 个承诺,但第三个需要来自第二个的数据,所以我在第二个中调用它。我想等待解决所有三个承诺,这是我实现的方式,但不起作用(只等待第一个和第二个)。

0 投票
2 回答
12025 浏览

javascript - angularjs 处理 $resource $promise 错误

如果连接到我的 API 时出现错误,有人可以帮我弄清楚如何在我的 AngularJS 工厂中返回硬编码数据。我的硬编码数据位于另一个名为“dataFactory”的工厂中。感谢您的帮助。

我的 dataFactory 定义如下:

0 投票
1 回答
279 浏览

javascript - Angularjs 向调用者对象返回 $http 响应

如何将响应值传递给父对象。在 angularjs 中进行 http 服务调用的调用者?我拥有的是一个 BaseModel ,它将执行如下操作。这个想法是 basemodel 对象实例应该具有响应值。顺便说一句,我试图避免使用广播等。

调用对象

定义:

}];

实际的BaseModel:

0 投票
1 回答
1541 浏览

angularjs - 注入指令的角度 ui-router 工厂/服务为空

我有一个使用 ui-router 的 Angular 应用程序,如下所示:

我已经使用 ui-router 定义了状态:

appState 服务定义如下:

我定义了一个指令如下:

该指令作为状态“app.state2.detail”的模板中的属性应用:

我能够将 appState 注入我的任何控制器并访问 appState 中的属性。但是,当我将 appState 注入到我的指令中时,如图所示,它是一个空对象,即指令中的 {},我无法访问应该在其中的属性。

为了解决这个问题,我将 appState 注入到我的顶级控制器范围中,以便它向下继承到 state2DetailsCtrl 的范围。然后我通过 scope['appState'] 在指令中访问它,然后我可以按预期访问 appState 属性。但是,我原以为我可以将 appState 注入指令中?

当我将 appState 注入指令时,为什么它是一个空对象 {}?您如何将工厂/服务注入指令中?

0 投票
2 回答
90 浏览

javascript - 角度服务返回对象?

据我了解,Angularjs 服务是通过传入一个构造函数来创建的:

Angular 使用new操作符运行这个函数。

我正在通过这项服务,我没有看到任何“这个”内幕

事实上这个函数返回 deferred.promise

有人可以阐明这里发生了什么吗?

0 投票
1 回答
1351 浏览

angularjs - AngularJS:返回 $http 承诺的测试工厂

尝试测试返回$httpGET 请求和then处理程序的角度服务,但我无法测试逻辑是否在then函数内部实际工作。这是服务代码的基本截断版本:

这是测试:

我觉得我已经尝试了几乎所有方法来测试then通话中的逻辑,所以如果有人可以提供建议,我将不胜感激。

编辑:我的问题也是由于非标准的注射做法,所以下面的答案在此之外起作用。

0 投票
1 回答
189 浏览

javascript - 为什么 $http.get 不需要返回任何东西?

我正在开发一个角度应用程序,并且我有一个正在调用服务的控制器。控制器向服务发送一个 URL。该服务向该 URL 发送一个 GET 请求并接收回 JSON。在那个 JSON 中是一个用于 Http 请求的 Uri。我从 JSON 中提取该 Uri,然后将浏览器重定向到它。

从端点返回的JSON如下所示

服务代码

控制器代码

正如您所看到的,我正在做一些日志记录来分解 JSON,并准确找出返回给我的内容以及如何访问返回对象的属性。

我的问题是:

  1. 为什么我不需要return data;在我的$http .success通话中?在什么情况下我需要?
  2. 有没有办法从调用中的数据对象返回特定属性,$http .success这样我就不必调用data.data.uri我的 Controller 方法?或者我可以在返回的 JSON 有效负载返回到我的控制器之前对其进行修改吗?
0 投票
2 回答
942 浏览

json - http.get() 获取反序列化的 JSON 但返回 HTTP 响应?

在我的 Angular 应用程序中,我有一个baseController.js类和一个类,它们可以通过将自己的范围注入 baseControllerexampleController.js来访问定义的函数。baseController这允许在所有控制器之间共享功能。

这是有效的,除非我尝试getDataFromUrl()exampleController. 在调试时我可以看到它getDataFromUrl()被调用了,它进入了调用的.success()函数$http.get()。那时我可以看到它data是一个反序列化的 JSON 对象(在这种情况下,它是一个对象数组)但是当代码最终返回到它exampleControllerinitArray()函数时data,它最终收到的不再是反序列化的对象,而是变成了原始 HTTP 响应数据。

baseController.js:

示例控制器.js:

为什么data返回exampleController为 HTTP 响应?我希望它保持为反序列化的 JSON!