Recursive $ http.get in for loop

Ich benutze Angular 1.5. Ich habe eine Funktion, die Kategorien abfragt und dann für jede Kategorie Produkte abfragt. Ich möchte eine Nachricht anzeigen, nachdem alle Produkte abgerufen wurden und wie viele abgerufen wurden. Es gibt 0 aus. Was ist die Lösung?

function getProducts() {
  vm.categories = [];
  var prodcount = 0;

  $http.get("localhost/menu/1/categories")
    .then(function(response) {
      var categories = response.data;
      angular.forEach(categories, function(cat) {
        $http.get("localhost/category/" + cat.id + "/products")
          .then(function(response) {
            cat.products = response.data;
            vm.categories.push(cat);
            prodcount += cat.products.length;
          });
      });
      $mdToast.show($mdToast.simple().textContent("retrieved " + vm.categories.length + " categories and, " + prodcount + " products!."));
    });
}

Antworten auf die Frage(4)

Ihre Antwort auf die Frage