我被卡住的东西,我认为应该是直线前进。 我需要从三个不同的Ajax调用取数据,结合并处理所有的三个,并显示所得到的数组给用户。
在最简单的形式我的代码如下所示:
function giftControler ($scope, $http) {
var names = $http.get("names.json"),
naughty = $http.get("naughty.json"),
nice = $http.get("nice.json");
据我所知,我的变量被分配到的承诺,而不是实际的结果,HTTP请求已经被传递给事件队列。 如果我按照这些具有可执行语句这些变量将是不确定的。 我不知道如何等待这些承诺,以便继续处理他们解决。
我希望做的是立即添加的代码:
for (var i=0; i<names.length; i++){
for (var j=0; j<nice.length; j++){
if (names[i] === nice[j]){
names[i] = names[i] + "--Yay!!";
};
};
};
$scope.kids = names;
问题是,我不能只工作过,好像他们是解决阵列的承诺。 JavaScript就看到这些将发言HTTP调用之后,试图立即执行它们,即使承诺没有得到解决。
我卡住的是, $ HTTP API是给我一个承诺对象有三个功能: error
, success
与then
。 我不知道该怎么在这种情况下,与该做的。 我需要所有三个单成功的功能。 我需要所有三个解决,然后在每个处理数据,然后将结果分配给一个角模型。
我相信我缺少明显的东西,但没有人有一个建议? 在我的实际工作中,我有几个AJAX调用多个数据源,并进行大量的处理(比较值,分拣,拼接等)拿出一个良好的数据收集的,但我不能获得通过这个问题。
谢谢,