1. Curso de Vue
  2. /
  3. JavaScript Moderno
  4. /
  5. Promesas (I)
1 / 1

Promesas (I)

Llamadas asíncronas

Forma de llamar asíncronamente al servidor backend. Mediante llamadas AJAX, se intenta ordenar un poco el código de manera que sea más legible. En vez de devolver inmediatamente el valor esperado, el método asíncrono devuelve una promesa de suministrar el valor en algún momento en el futuro, ejecutando un callback cuando llegue el valor u otro en caso de error.

Se pueden encadenar diferentes promesas una tras otra y se lee todo de forma mucho más clara, al contrario que el encadenamiento de callbacks que se realizaba antes.


let p = new Promise((resolve, reject) => {
  // Llamamos a resolve(...) cuando lo que estabamos haciendo finaliza con éxito, y reject(...) cuando falla.
  // En este ejemplo, usamos setTimeout(...) para simular código asíncrono.
  // En la vida real, probablemente uses algo como XHR o una API HTML5.
  setTimeout(function(){
    resolve("¡Éxito!"); // ¡Todo salió bien!
  }, 250);
});

Llamadas a backend

Más adelante lo veremos, pero las llamadas a un backend y sus respuestas tendrían más o menos esta estructura. No es muy importante ahora, pero es mejor que os suene cuando tengamos que usarla.


// Código de antes...
let a = f().item;
apiBackendLayer.getAllTasks(user)
  .then(h ttpCall => httpCall.data ) // El campo data que nos devuelve el backend
  .then( (tasks) => {
    // hacemos cosas con esas tareas
  })
  .catch( (error) => {... // trabajamos con el error})
  .finally() // Se ejecuta tanto si falla como si funciona todo.
// Código de después, se seguirá ejecutando sin esperar
f1();