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">
        <button ng-click="asyncNotification()">asyncNotification</button>
    </div>
</div>

JavaScript

angular.module('myApp', [])
.controller('Ctrl', function ($scope, $q, $log) {
    var deferred = $q.defer()
      , promise = deferred.promise;
    
    promise
    .then(
        function() {
            $log.log('success');
        },
        null,
        $log.log
    );
    
    $scope.asyncNotification = function() {
        deferred.notify('Hello, ');
        $log.log('world!');
        deferred.resolve();
    };
    
    // this function is invoked by some non-AngularJS entity
    // asyncNotification();
    // world!
    // Hello, 
    // success
    
});