angular $q, How to chain multiple promises within and after a for-loop
What you need to use is $q.all which combines a number of promises into one which is only resolved when all the promises are resolved. In your case you could do something like: function outerFunction() { var defer = $q.defer(); var promises = []; function lastTask(){ writeSome(‘finish’).then( function(){ defer.resolve(); }); } angular.forEach( $scope.testArray, function(value){ promises.push(writeSome(value)); … Read more