TUTORIALES

Promesas en AngularJS


En AngularJS, las promesas son objetos que representan el resultado eventual (éxito o fracaso) de una operación asincrónica. Son utilizadas principalmente para manejar solicitudes HTTP y otras operaciones asíncronas de forma más limpia y legible. Aquí te muestro cómo trabajar con promesas en AngularJS:

  1. Crear una promesa:

    Puedes crear una promesa utilizando el servicio $q de AngularJS. Aquí hay un ejemplo de cómo crear una promesa:

    angular.module('miApp')
      .controller('MiControlador', function($scope, $q) {
        var deferred = $q.defer();
    
        // Realizar alguna operación asíncrona, por ejemplo:
        setTimeout(function() {
          // Simular éxito
          deferred.resolve('Operación completada exitosamente');
    
          // Simular error
          // deferred.reject('Error: operación fallida');
        }, 2000);
    
        return deferred.promise;
      });

    En este ejemplo, hemos creado una promesa utilizando $q.defer(). Dentro de la función que crea la promesa, realizamos alguna operación asíncrona (como una solicitud HTTP, un temporizador, etc.). Después de completar la operación, resolvemos o rechazamos la promesa según sea necesario.

  2. Usar una promesa:

    Una vez que tienes una promesa, puedes usar métodos como then()catch(), y finally() para manejar el resultado de la promesa. Por ejemplo:

    deferred.promise
      .then(function(resultado) {
        console.log('Éxito:', resultado);
      })
      .catch(function(error) {
        console.error('Error:', error);
      })
      .finally(function() {
        console.log('Operación finalizada');
      });

    En este ejemplo, utilizamos then() para manejar el caso de éxito, catch() para manejar el caso de error, y finally() para realizar acciones independientemente del resultado de la promesa.

  3. Utilizar promesas con $http:

    En AngularJS, las solicitudes HTTP devuelven promesas. Por lo tanto, puedes usar métodos como then() y catch() para manejar el resultado de la solicitud HTTP. Por ejemplo:

    $http.get('/api/datos')
      .then(function(response) {
        console.log('Éxito:', response.data);
      })
      .catch(function(error) {
        console.error('Error:', error);
      });

    En este ejemplo, estamos realizando una solicitud GET y utilizando then() para manejar la respuesta exitosa y catch() para manejar errores.

  4. Encadenamiento de promesas:

    Puedes encadenar promesas utilizando el método then(). Esto te permite realizar operaciones en secuencia y manejar los resultados en cada paso del camino. Por ejemplo:

    $http.get('/api/datos')
      .then(function(response) {
        return response.data;
      })
      .then(function(data) {
        console.log('Datos procesados:', data);
      })
      .catch(function(error) {
        console.error('Error:', error);
      });

    En este ejemplo, estamos encadenando dos promesas: la primera para obtener datos de una solicitud HTTP y la segunda para procesar los datos recibidos.

Con estos pasos, has aprendido cómo trabajar con promesas en AngularJS. Puedes utilizar promesas para manejar operaciones asíncronas de forma más limpia y legible en tu aplicación.



0 Comments:

Publicar un comentario