¿Qué es un objeto de promesa en JavaScript?

¿Qué es un objeto de promesa en JavaScript?

En JavaScript, los objetos de promesa se utilizan para trabajar con las operaciones asíncronas. El concepto de promesa puede sonar complicado al principio, pero en realidad son bastante simples; Podemos entender las promesas de JavaScript comparándolas con las promesas del mundo real utilizando los términos de Layman.

En la vida cotidiana hacemos promesas para mostrar nuestro compromiso. De manera similar, en JavaScript, hacemos un objeto prometedor cuando necesitamos que nos comprometamos a ejecutar un bloque de código.

Por ejemplo, cuando enviamos una solicitud para obtener datos de una API a través de nuestro código, la API toma tiempo para responder. Mientras tanto, el intérprete de JavaScript pasa al siguiente bloque de código, pero queremos ejecutar algún código después del cumplimiento o rechazo de la respuesta. Ahora, si usamos el objeto Promise, podemos ejecutar la línea de códigos deseada sobre el cumplimiento o el rechazo de la respuesta API.

Los objetos de promesa de JavaScript pueden tener tres estados diferentes.mi:

  • Pendiente
  • Satisfecho
  • Rechazado

La promesa está en estado pendiente cuando el resultado del objeto prometedor está indefinido; Se cumple cuando el resultado tiene un valor y se rechaza cuando el resultado es un error. Por ejemplo, en el ejemplo anterior si hemos enviado la solicitud a la API y estamos esperando los datos, entonces la promesa está en estado pendiente. Si la API envía con éxito los datos, entonces se cumple la promesa y si el código no puede conectarse con la API, la promesa ha sido rechazada.

¿Cuáles son las promesas en JavaScript?

Como se mencionó anteriormente, las operaciones asíncronas en JavaScript se manejan a través de promesas. JavaScript asíncrono se refiere principalmente a las funciones que se ejecutan en paralelo con el programa principal.

En JavaScript, los eventos y las funciones de devolución de llamada se utilizaron para manejar la operación asincrónica antes de las promesas. Se agregaron promesas en la versión ES6 de JavaScript en 2015. Aunque las funciones y eventos de devolución de llamada fueron útiles, todavía tenían sus limitaciones. Callback Hell fue el mayor inconveniente del uso de funciones de devolución de llamada.

Las promesas son perfectas para manejar operaciones asincrónicas, ya que pueden manejar varias operaciones asíncronas y son mucho mejores para manejar errores que eventos y devoluciones de llamada.

Cómo funcionan las promesas en JavaScript

Las funciones asincrónicas son funciones que se ejecutan paralelas al programa principal. Estas funciones funcionan por separado del programa principal y notifican el hilo de llamadas de su éxito, fracaso o progreso.

El objeto de promesa en JavaScript tiene uno de los tres estados:

  • pendiente: es el estado del objeto de promesa entre su inicialización y finalización.
  • cumplido/resuelto: es el estado el que indica que la operación del objeto de promesa fue exitoso.
  • Rechazado: es el estado el que indica que la operación del objeto de promesa no tuvo éxito.

Creación de un objeto de promesa simple en JavaScript

Aquí aprenderemos a crear un objeto de promesa en solo unos pocos pasos simples:

  1. En JavaScript se crea un objeto de promesa utilizando un constructor "nueva promesa ()". Este constructor toma una función de devolución de llamada con dos argumentos como argumento.
  2. El código que se requiere para realizar la tarea prometida se escribe en el cuerpo de la función de devolución de llamada.
  3. Si la tarea se realiza con éxito, la promesa se resuelve/cumple; de lo contrario, la promesa es rechazada/no cumplida.
  4. Hay dos métodos asociados con el objeto prometedor, el método entonces () y el captura (). Estos métodos se llaman (respectivamente) si la promesa se resuelve o se rechaza.

Nota: La consola del navegador se utiliza para la demostración de ejemplos en este artículo.

Las promesas de JavaScript se crean utilizando el nuevo Promesa () constructor:

const mypromise = new Promise ();

La nueva promesa toma dos parámetros diferentes. Uno de estos parámetros es para el éxito (en caso de que se resuelva la promesa) y el otro es para el fracaso (en caso de que la promesa se rechaza):

const mypromise = new Promise ((resolve, rechazar) =>
// condición // condición
);

Finalmente, definimos el cuerpo del objeto de la promesa. Le damos una condición que solo se cumplirá si se resuelve la promesa:

const mypromise = new Promise ((resolve, rechazar) =>
dejar condición = verdadero;
if (condición)
Resolver ('Promise se resuelve.');
demás
rechazar ('la promesa es rechazada.');

);

Ahora aprendamos a usar nuestro objeto prometedor recién creado. Solo puede haber dos resultados finales diferentes para un objeto prometedor; puede ser una promesa resuelta o rechazada.

entonces () método : El método entonces () define lo que sucederá a continuación si se resuelve una promesa.

mi promesa.entonces();

En este ejemplo estamos utilizando el método entonces () para registrar un mensaje (que recibimos de la promesa) a la consola.

mi promesa.entonces ((mensaje) =>
consola.registro (mensaje);
);

Catch () Método : Del mismo modo, el método Catch () define lo que sucederá a continuación si una promesa falla.

mi promesa.entonces ((mensaje) =>
consola.registro (mensaje);
).capt ((mensaje) =>
consola.registro (mensaje);
);

Se puede escribir de dos maneras diferentes; por separado o en combinación con el método entonces (). En caso de que la promesa no esté cumplida, ejecutará el método Catch () y esta vez se mostrará un mensaje diferente en la consola.

Conclusión

Las promesas en JavaScript son objetos que se utilizan como una alternativa de funciones y eventos de devolución de llamada al manejar operaciones asíncronas en JavaScript. Las promesas pueden tener tres estados diferentes que.mi. pendiente, realizado o no cumplido. En el estado pendiente, el objeto de promesa espera el valor, por lo que no tiene valor. En el estado satisfecho tiene el valor resuelto y en el estado no cumplido tiene la razón por la cual la promesa no se resolvió. Esta publicación fue una guía exhaustiva sobre los objetos de promesa en JavaScript.