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 deferred = $q.defer()
      , promise = deferred.promise;
    
    var successHandler = function(val) { 
        $log.log(val); 
        return val+1;
    };
    
    promise
    .then(successHandler)
    .then(successHandler)
    .then(successHandler);
    
    deferred.resolve(3);
    // 0
    // 1
    // 2
});