<!DOCTYPE html>
<html ng-app="app">
  <head>
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.min.js"></script>
    <script src="//code.angularjs.org/1.2.19/i18n/angular-locale_es-es.js"></script>
    <script src="script.js"></script>
  </head>
  <body ng-controller="PruebaController">
    {{mensaje}}
  </body>
</html>
var app = angular.module("app", []);

app.controller("PruebaController", ['$scope', '$q', '$timeout',function($scope, $q, $timeout) {

    $scope.mensaje = "Esperando a que se resuelva la promesa"

    function sumaAsincrona(a, b) {
      var defered = $q.defer();
      var promise = defered.promise;

      $timeout(function() {
        try {
          var resultado = a + b;
          defered.resolve(resultado);
        } catch (e) {
          defered.reject(e);
        }
      }, 3000);

      return promise;
    }

    var promise = sumaAsincrona(5, 2);

    promise.then(function(resultado) {
      $scope.mensaje = "El resultado de la promesa es:" + resultado;
    }, function(error) {
      $scope.mensaje = "Se ha producido un error al obtener el dato:" + error;
    });

}]);
Ejemplo de promesa