Я пытаюсь получить два набора результатов из разных баз данных. Второй результат зависит от параметров, полученных из первого набора результатов. Я хочу, чтобы оба результата были возвращены перед продолжением. Глядя на некоторые другие вопросы, я думал, что, возможно, это будет работать:Angular - Как подождать два запроса, когда второй зависит от результатов от первого?
app.factory('myService',['$http','$q',function ($http, $q){
function getDetails(scope){
var paths = [];
return $q.all([
$http.post('getdetails.php',{begDate:scope.begDate, endDate:scope.endDate})
.then(function(response) {
angular.forEach(response.data,function(table,key){
angular.forEach(table, function(row,key){
paths.push(row.CURRENT_PATH);
})
})
return response;
})
,
$http.post('coordtest.php', {paths: paths})
.then(function(response) {
return response;
})
]);
}
return {
getDetails: getDetails
};
}]);
Но результаты как получить возвращается в то время как пути по-прежнему пусто?
'$ .q.all()' не собирается ждать второго запроса на первом ... они будут запускаться одновременно – charlietfl
@charlietfl благодарю вас за ответ, можете ли вы рассказать мне, как я могу достичь этого поведение? –
Посмотрите на [это] (http://stackoverflow.com/questions/32000037/resolve-and-q-all-issue/32000637#32000637), это должно помочь – user2718281