Как передать данные между запросами в угловом ресурсе?

0

Вот мой пример: это нормально работает:

var first  = $http.get("/app/data/first.json"),
    second = $http.get("/app/data/second.json"),
    third  = $http.get("/app/data/third.json");

$q.all([first, second, third]).then(function(result) {
  var tmp = [];
  angular.forEach(result, function(response) {
    tmp.push(response.data);
  });
  return tmp;
}).then(function(tmpResult) {
  $scope.combinedResult = tmpResult.join(", ");
});

Здесь first, second and third все работы в одиночку не зависели. В случае, например, "для второго requires some идентификатор from первого and третьего, requires some данные from второго ... then how to initiate the запрос" зависит от другого?

var first  = $http.get("/app/data/first.json"), //fetching id
    second = $http.get("/app/data/second.json"), //needs some id from first
    third  = $http.get("/app/data/third.json"); //needs some data from second

Как это должно быть обработано. также запрос будет из серии добавления запроса или серии добавления в $q.all.

кто-нибудь объяснит мне, обновляя мой код, пожалуйста?

Теги:
angular-resource

1 ответ

2
Лучший ответ
first.then(function(data1){
  second.then(data2){
    third.then(data3){

    });
  });
});

первое, второе и третье - ваши обещания. Ошибка может быть получена во второй функции обратного вызова, например.

promise.then(function(successData){
  // success here
}, function(errorData){
  // error here.
});
  • 0
    Как получить сообщение об ошибке здесь? q.all здесь не требуется
  • 0
    так как ваш один запрос зависит от другого, вы не можете использовать q.all . Вы можете использовать q.all только если какой-либо запрос не зависит от вывода других запросов.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню