AngularJS $q and promise

A simple demo for using $q

HTML

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.2/angular.min.js"></script>
<div ng-app="myApp">
    <div ng-controller="MyCtrl">
        <span>Without $q: I got cash {{getMoneyNoQ}}</span>
        <button ng-click="cashNoQ(100)">Cash $100</button>
        <br/>
        <span>With $q: I got cash {{getMoney}}</span>
        <button ng-click="cash(10000)">Cash $10000</button>
        <br/>
        <button ng-click="reset()">Reset</button>
    </div>
</div>

JavaScript

var myApp = angular.module('myApp',[]);

myApp.controller('MyCtrl', function($scope, $q, $timeout){
		var testq = $q.defer();
    console.log(testq);
    
    var bankCashCheckNoQ = function(cash){
        var giveCash = 0;
        $timeout(function(){
            alert("Inventory Done! From NoQ!");
            giveCash = cash;
        }, 1*1000);
        return giveCash;
    }
    $scope.getMoneyNoQ = "N/A";
    $scope.cashNoQ = function(cash){
        $scope.getMoneyNoQ = bankCashCheckNoQ(cash);
    };
    
    var bankCashCheck = function(cash){
        var cashCheckJob = $q.defer();
        var promiseCard = cashCheckJob.promise;
        $timeout(function(){
            alert("Yes! We got it!");
            //cashCheckJob.resolve(25000);
            cashCheckJob.reject(18000);
            cashCheckJob.resolve(25000);
        }, 1*1000);
        
        return promiseCard;
    }
    $scope.getMoney = "N/A";
    $scope.cash = function(cash){
        bankCashCheck(cash).then(function(getCash){
            $scope.getMoney = getCash;
        },function(a){
        		alert(a);
        });
    };
    
    $scope.reset = function(){
        $scope.getMoneyNoQ = "N/A";
        $scope.getMoney = "N/A";
    };
    
});