Chapter 8: Chaining promises and promise handlers
HTML
<script src="https://code.angularjs.org/1.3.2/angular.min.js"></script>
<div ng-app="myApp">
<div ng-controller="Ctrl"></div>
</div>
JavaScript
angular.module('myApp', [])
.controller('Ctrl', function ($q, $log) {
var deferred1 = $q.defer()
, promise1 = deferred1.promise
, deferred2 = $q.defer()
, promise2 = deferred2.promise;
$q.all([promise1, promise2]).then($log.log, $log.error);
// resolve a collection promise, no handler execution
deferred1.resolve(456);
deferred2.resolve(123);
// reject a collection promise, rejection handler executes
// (error) 123
});