AngularJS $http promises

by Gabriel

HTML

<script src="http://ci.angularjs.org/view/AngularJS/job/angular.js-angular-master/3066/artifact/build/angular.min.js"></script>
<div ng-controller="MainController">
    {{ result1 }}
    <br>
    {{ result2 }}
    <br>
    {{ result3 }}
    <br>
    {{ result4 }}
<div>

JavaScript

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

app.controller("MainController", function ($scope, $q, $http) {
    var fetchFromServer = function (mockFail) {
        return $http.get("http://api.reddit.com/hot", function () {
            if (mockFail) {
                return $q.reject();
            }
        });
    };
    
    fetchFromServer().then(function () {
        $scope.result1 = "success";
    }, function () {
        $scope.result1 = "error";
    });
    
    fetchFromServer(true).then(function () {
        $scope.result2 = "success";
    }, function () {
        $scope.result2 = "error";
    });
    
    var fetchFromServer2 = function (mockFail) {
        return $http.get("http://api.reddit.com/hot").then(function () {
            if (mockFail) {
                return $q.reject();
            }
        });
    };
    
    fetchFromServer2().then(function () {
        $scope.result3 = "success";
    }, function () {
        $scope.result3 = "error";
    });
    
    fetchFromServer2(true).then(function () {
        $scope.result4 = "success";
    }, function () {
        $scope.result4 = "error";
    });
});