【发布时间】:2015-12-05 09:19:22
【问题描述】:
我有一个 AngularJs 应用程序,我需要在其中循环调用 $http。这是我的代码:
var promisesArray = [];
for(i = 0; i < 28; i++) {
promisesArray.push($http({
method: "post",
url: "/studentanswers",
data: {
studentName: "abc",
answerImage: "sdf",
questionPrompt: 1
}
}));
}
$q.all(promisesArray).then(function(data){
console.log("success!!!!");
});
由于某种原因,它没有发布集合中的所有项目。我知道浏览器通常不允许超过 6 个异步 post 调用。据我了解,$q.all 是一种解决方法。此外,即使我注释掉 $q.all 部分,也没关系,因为 post 调用仍然会执行。
我将非常感谢任何帮助!
【问题讨论】:
-
开发者工具中的网络标签是什么样子的?
-
我打印出了错误响应。这是我得到大约 10 或 11 次的结果: Object {data: null, status: -1, config: Object, statusText: ""}
-
另外,我之前问过这个问题,这导致我访问 $q.all:stackoverflow.com/questions/33949265/…
-
错误信息对我没有帮助。您可以在开发人员工具中打开网络选项卡以显示正在发送的请求吗?您需要确保您尝试走正确的路线。在这个问题中,我认为
$q.all与您的问题没有任何关系(即您的代码看起来不错)。 -
在发布另一个问题之前,您似乎没有测试您在原始问题中接受的解决方案。我同意接受的回答者回复的这一部分:“更好的方法是修改您的端点以获取集合,或者创建一个新的端点”。
$q.all只是一个实现细节,但并不能解决问题。
标签: angularjs post promise angular-promise