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); }); });
是的,你是对的。我建议尝试一下。密切相关: