在下面的代码中,我根据变量x
将函数添加到promises数组中。在最后一个条件中,我需要在$ http响应之后添加该函数。这段代码是否正确? $q.all
中所有promise的执行是否会等到$http
函数返回响应?
var promises = [];
array.forEach(function(x){
if (x==1)
promises.push(function1('aaa'));
else if (x==2)
promises.push(function2('bbb'));
else {
$http.get("url.htm").then(function(response) {
promises.push(function3(response));
});
}
});
$q.all(promises).then(function(resultArray) {
// .....
}
答案 0 :(得分:1)
它不会等待AJAX响应,因为它是异步的。
目前还不清楚funciton1& function2 return(promises?),但它应该更像是
var promises = [];
array.forEach(function(x){
if (x===1)
promises.push(function1('aaa'));
else if (x===2)
promises.push(function2('bbb'));
else {
promises.push($http.get("url.htm"))
}
});
$q.all(promises).then(function(resultArray) {
// .....
}