Javascript 如何在angularjs中使用$q.all(承诺)
通常我会这样做Javascript 如何在angularjs中使用$q.all(承诺),javascript,angularjs,angular-promise,Javascript,Angularjs,Angular Promise,通常我会这样做 $http({ method:'GET', url: 'exmapleURL', params: {someParams} }).then(function(response) { console.log(response); // response contains data I need }); 现在我有多个这样的调用要运行,我想等待它们全部完成,然后再处理它们的响应,而$q.all()似乎是一个很好的开始 根据文件 全部(承诺) 将多个承诺
$http({
method:'GET',
url: 'exmapleURL',
params: {someParams}
}).then(function(response) {
console.log(response); // response contains data I need
});
现在我有多个这样的调用要运行,我想等待它们全部完成,然后再处理它们的响应,而$q.all()似乎是一个很好的开始
根据文件
全部(承诺)
将多个承诺合并为一个承诺,在解析所有输入承诺时解析该承诺。返回:返回单个承诺,该承诺将通过值的数组/散列进行解析,每个值对应于承诺数组/散列中相同索引/键处的承诺。如果通过拒绝解决任何承诺,则产生的承诺将以相同的拒绝值被拒绝 这是否意味着如果我传入一个请求数组(如$q.all(calls).then(response)),则返回的承诺将以与传入调用相同的顺序放入一个数组中?我是否可以执行类似于
response[0]
的操作来检索第0次调用返回的响应数据?多谢各位
这是否意味着如果传入一个请求数组(如$q.all(calls).then(response)),则返回的承诺将以与传入调用相同的顺序放入一个数组中?我是否可以执行响应[0]之类的操作来检索第0次调用返回的响应数据
是,数组中的结果按相同顺序返回:
角度模块(“应用程序”,[])
.run(函数($q){
var promise99=q.when(99)美元;
var promise22=q.when(22)时的$q;
$q.all([promise22,promise99])。然后(函数([result22,result99]){
控制台日志(result22);
console.log(result99);
});
});代码>
是的,你是对的。我建议尝试一下。密切相关: