Angular: Chaining promises

by HoffZ

HTML

<div ng-app>
    <div ng-controller="TestingCtrl">
         <h2>{{title}}</h2>
    </div>
</div>

JavaScript

function TestingCtrl($scope, $q, $timeout) {
    $scope.title = 'Chaining promises';
    
    console.log('-----')   
    
    var a = func1()
    var b = func2();
    var c = func3();
    
    a = b = c;
    
    a.then(function() {
        console.log('done')
    })    
    a.catch(function(err) {
        alert(err)
    })
    
    function func1() {
        var d = $q.defer();
        console.log('1');
        d.resolve();
        return d.promise;
    }
    
    function func2() {
        var d = $q.defer();
        console.log('2');
        d.resolve('error');
        return d.promise;
    }
    
    function func3() {
        var d = $q.defer();
        $timeout(function() {
            console.log('3');
            d.resolve();
            //d.reject('error');
        }, 1000)
        return d.promise;
    }

}