Chapter 8: Chaining promises and promise handlers

by billy roberts

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

//using finally to cleanup
angular.module('myApp', [])
.controller('Ctrl', function ($q, $log) {
    var deferred = $q.defer()
    , promise = deferred.promise
    , deferred1 = $q.defer()
    , promise1 = deferred1.promise
    , deferred2 = $q.defer()
    , promise2 = deferred2.promise
    , cb = function() { $log.log("called"); };
    
    promise1.finally(cb);
    promise2.finally(cb);
    
    deferred1.resolve();
    // "called"
    deferred2.reject();
    // "called"
});