Promesas en JavaScript | Explicado

Promesas en JavaScript | Explicado
JavaScript es un lenguaje de programación de alto nivel donde el código se ejecuta línea por línea, lo que significa que la siguiente línea de código solo se ejecuta una vez que la línea de código anterior se ejecuta por completo. Para resolver este problema, JavaScript ofrece funciones de devolución de llamada que son asíncronas equivalentes a una función.

El código asíncrono se ejecuta inmediatamente y, a diferencia del código síncrono, no espera que la línea de código anterior finalice la ejecución. Sin embargo, cuando estamos tratando con múltiples operaciones asincrónicas, usar devoluciones de llamada no es una buena opción ya que el código se vuelve confuso, inmanejable y difícil de entender o depurar. Por lo tanto, la solución es usar promesas.

En esta publicación, pasaremos por el concepto de promesas en JavaScript junto con ejemplos.

¿Qué son las promesas??

Una promesa es una operación o tarea que se completará en el futuro. La sintaxis de la promesa se da a continuación:

Sintaxis de promesa:

Deje que mypromise = new Promise (function (resolve, rechaze)
// código
);

Como podemos ver en la sintaxis de promesa anterior, el constructor de promesas toma solo la función de devolución de llamada como argumento. En la función de devolución de llamada, tenemos los argumentos de resolución y rechazo en los que se llama la resolución cuando las operaciones realizadas dentro de la función de devolución de llamada tienen éxito. Sin embargo, si la operación no tiene éxito, llame a rechazar.

Para decirlo, simplemente déjanos suponer que se acerca tu cumpleaños y tu madre te promete que te consigas una nueva computadora portátil. No has recibido la computadora portátil y no puedes estar realmente seguro de si obtendrás la computadora portátil o no hasta tu cumpleaños. Tu madre podría comprarte una computadora portátil o ella puede cambiar de opinión y comprarte algo más. Esta es una promesa en el idioma laico.

Cada promesa tiene tres estados o posibilidades:

  • Pendiente: no está seguro de si obtendrá la computadora portátil o no; indefinido.
  • Fulfado: Tu madre te compra la computadora portátil; valor de resultado.
  • Rechazado: Tu madre no te compra una computadora portátil; objeto de error.

Ventajas de las promesas

  • Las operaciones asincrónicas se manejan de manera más simple
  • La legibilidad del código se mejora, por lo tanto, la depuración se vuelve fácil
  • El manejo de errores es más fácil que los eventos o las devoluciones de llamada.
  • El flujo de control se define mejor por código asíncrono.

Antes de ir a los ejemplos de promesa, pasemos por otro concepto dentro de las promesas que son prometidas consumidores cuya función es consumir promesas registrando funciones utilizando:

  • .luego (): Cuando se resuelve o rechaza una promesa, se llama a este método.
  • .Catch (): Cuando se rechaza una promesa o se produce un error durante la ejecución de la promesa, se llama a este método.

Ejemplo:

En este ejemplo, verificaremos si dos números son iguales o no utilizando promesas, y en función de si esta operación es exitosa o no, mostraremos la salida.

// Promesa inicializar
// Promesa inicializar
varmypromise = newPromise (function (resolve, rechazar)
const num1 = 4;
const num2 = 4;
// Comparar dos números
if (num1 === num2)
// Cuando la operación es exitosa
resolver();
demás
// Cuando llega el error
rechazar();

);
// Promesa a los consumidores
mi promesa.
entonces (function ()
consola.log ("Operación exitosa");
).
Catch (function ()
consola.log ('Ocurrió el error');
);
  • Inicializamos la promesa con el nombre mypromise y proporcionamos una función de devolución de llamada.
  • En la función, creamos los dos números que queremos comparar
  • Usamos la instrucción if-else para ver si los números son iguales o no
  • Y luego incluimos la promesa de los consumidores
  • Si la operación de promesa es exitosa entonces .entonces el consumidor será invocado y la consola mostrará operación exitosa
  • Si una promesa no es exitosa, verá un mensaje que dice que "ocurrió un error" en la consola

Dado que la operación fue exitosa, vemos Operación exitosa En el registro de la consola.

Cambiemos ahora los números inicializados en la función de devolución de llamada para ver si la función de captura detecta un error o no.

// Promesa inicializar
varmypromise = newPromise (function (resolve, rechazar)
const num1 = 5;
const num2 = 4;
// Comparar dos números
if (num1 === num2)
// Cuando la operación es exitosa
resolver();
demás
// Cuando llega el error
rechazar();

);
// Promesa a los consumidores
mi promesa.
entonces (function ()
consola.log ("Operación exitosa");
).
Catch (function ()
consola.log ('Ocurrió el error');
);

Dado que los números no son iguales ahora, la función rechazar () se invocará y el error será almacenado en caché por la función de captura:

Conclusión

Una promesa es una operación que se completa en el futuro y ayuda a los desarrolladores a implementar el código asíncrono. Las promesas se prefieren sobre las funciones de devolución de llamada, ya que las promesas son mucho más limpias, por lo tanto, mejorando la legibilidad, y la depuración del código, tiene un mejor manejo de errores, así como múltiples operaciones asincrónicas, se manejan mejor con promesas. Se puede cumplir, rechazar una promesa o está pendiente.

En esta publicación, pasamos por promesas en JavaScript y explicamos promesas con la ayuda de un ejemplo.