var m = angular.module("myApp", []); m.factory("dataService", function ($q) { function _callMe() { var d = $q.defer(); setTimeout(function () { d.resolve(); //defer.reject(); }, 100); return d.promise; } return { callMe: _callMe }; }); function myCtrl($scope, dataService) { $scope.name = "None"; $scope.isBusy = true; dataService.callMe() .then(function () { // Successful $scope.name = "success"; }, function () { // failure $scope.name = "failure"; }) .then(function () { // Like a Finally Clause $scope.isBusy = false; }); }
<div ng-app="myApp"> <div ng-controller="myCtrl"> <div>{{ isBusy }}</div> <div>{{ name }}</div> </div> </div>