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;
    
    // $log.info is the resolve handler,
    // $log.error is the reject handler 
    promise.then($log.info, $log.error);
    
    deferred.resolve('ok');  
    // (info) 123
    
    // reset to demonstrate reject()
    deferred = $q.defer();
    promise = deferred.promise;
    
    promise.then($log.log, $log.error);
    
    deferred.reject('fail');  
    // (error) 123
});