Chapter 8: Understanding and implementing a basic promise
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;
// define handlers on the promise to gain visibility
// into their execution
promise.then(function resolved() {
$log.log('success');
}, function rejected() {
$log.log('rejected');
});
// verify initial state
$log.log('a '+promise.$$state.status); // 0
// resolve the promise
deferred.resolve();
// >> "resolved"
$log.log('b '+promise.$$state.status); // 1
// output and state check verify state transition
// attempt to reject the already resolved promise
deferred.reject();
$log.log('c '+promise.$$state.status); // 1
// output and state check verify no state transition
});