Рекурсивный цикл $ http.get в for

Я использую Angular 1.5. У меня есть функция, которая запрашивает категории, затем для каждой категории она запрашивает продукты. Я хочу показать сообщение после того, как все продукты получены, сколько было получено. Он выводит 0. Какое решение?

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!."));
    });
}

Ответы на вопрос(2)

Ваш ответ на вопрос