Angular promises tests

error handlers

by Kyrylo Slatin

HTML

<div ng-controller="ctrl">
    Controller
    <table>
        <tr ng-repeat="item in data">
            <td>{{item.name}}</td>
            <td>{{item.age}}</td>
        </tr>
    </table>
    <p>second person</p>
    <p>
        <input ng-model="person1.name"/>
        <input ng-model="data[0].age"/>
    </p>
    
    {{person1}}
    <p>
        <address ng-model="person1.age" person="person1"></address>
    </p>
    <p>
        <button ng-click="change()" >Change</button>
    </p>

</div>

CSS

.dir{
    border: solid red 3px;
}

JavaScript

angular.module('app', []);
angular.module('app').controller('ctrl', function($scope, $rootScope, $q){
     function promise(){
        var d = $q.defer();
         console.log('promise() called');
        setTimeout(function(){ 
            console.log('promise() going to resolve');
            d.reject('promise'); 
        }, 10);
        return d.promise;    
    } 
    var d = $q.defer();
    //d.reject('error 1');
    d.resolve('success 1');
    d.promise
    .then(
        /*success*/function (result) { 
            console.log("success in 1: " + result); 
            //return $q.resolve;
            //throw new Error();
            return promise();
            //return result; 
        }
        //,/*error*/function (e) { console.log("error in 1: " + e); return $q.reject(e); }
        )
    .then(
        /*success*/function (result, r2) { console.log("success in 2: " + result + ' ' + r2); }
        //,/*error*/function (e) { console.log("error in 2: " + e); }
    ).catch(function(e){ console.error('Final error: ' + e);})
    .then(function(param){ console.log('After catch: ' + param)});
});

angular.bootstrap(document, ['app']);