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;
    
    var a = deferred1.resolve(true);
    var b = deferred2.resolve(false);
    
    console.log(a);
    console.log(b);
    
    $q.all([promise1, promise2]).then($log.log);
    
    console.log(deferred1.resolve("1"));
    console.log(deferred2.resolve("2"));
    
    deferred1.resolve(456);
    deferred2.resolve(123);
    // [456, 123]
});