miércoles, 25 de septiembre de 2019

Promesas en JavaScript

El código de JavaScript se ejecuta de forma secuencial y a toda velocidad, pero en ocasiones nos gustaría que algunas líneas de código se quedaran escuchando o esperando respuesta y que esto no impidiera que se siguieran ejecutando las siguientes.

Con esta idea surgieron las promesas que nos permiten lanzar peticiones a APIs externas, a servicios o a bases de datos mientras se continua ejecutando nuestro código y cuando llege la respuesta se completa el contenido que pretendemos mostrar al usuario.

setTimeout

Veamos un ejemplo de gran sencillez para mostrar la idea de que el códgio se continúa ejecutando aunque alguna línea se retrase en su ejecución.

  • Primera sentencia. Imprime por consola a.
  • Segunda sentencia. Se ejecuta con un retrardo de 1 segundo, por lo que no imprime nada aún.
  • Tercera sentencia. Imprime c justo después de a ya que no espera a que se imprima b.
  • Finalmente se imprime por consola b con un retardo, por lo que b se imprime en último lugar.

 console.log('a');  
 setTimeout(()=>{  
  console.log('b (1 segundo después)')  
 },1000);  
 console.log('c');  

Promesas

Las promesas representan un valor que puede estar disponible ahora, en le futuro o nunca.
Se utilizan en tecnologías asíncronas porque evitan el callback hell.

Una promesa puede tener tres estados:

  • puede estar pendiente
  • puede estar resuelta
  • puede estar rechazada




No hay comentarios:

Publicar un comentario