Promesas en
AngularJS

Samuel Martín

   var _filter = function (cars, criteria, successCallback,

                            errorCallback) {

        $timeout(function () {

            var result = [];

            angular.forEach(cars, function (car) {

                if (_matches(car, criteria)) {

                    result.push(car);

                }

            });

            if (result.length > 0) {

                successCallback(result);

            } else {

                errorCallback("No se han encontrado resultados");

            }

var criteria = 'ferrari';

$scope.cars = ['ford','ferrari'];

 

$scope.searchCarsByCriteria = function (criteria) {

    carSearchService.filter($scope.cars, criteria, function (result) {

        $scope.searchResult = result;

    }, function (message) {

        $scope.message = message;

    });

};

  • then(successCallback, errorCallback, notifyCallback) es invocado cuando la promesa es resuelta (.resolve).
  • catch(errorCallback) se invoca cuando una promesa ha fallado, es equivalente al comportamiento en caso de .then(null, errorCallback).
  • finally(callback) al igual que en otros lenguajes como Java, es un fragmento que se va a invocar independientemente de cual sea el resultado de la promesa.

$scope.cars = ['ford','ferrari'];

 

scope.filterCars = function (criteria) {

    carSearchService.filter($scope.cars, criteria)

        .then(function (result) {

         console.log('la promesa se ha resuelto');

            $scope.searchResults = result;

        })

        .catch(function (message) {

            console.log('la promesa se ha rechazado');

            $scope.message = message;

        });

};

Promesas AngularJS

By samuelmartin1988

Promesas AngularJS

  • 646