Las promesas en JavaScript son objetos que representan el resultado eventual de una operación asincrónica. Se utilizan para manejar operaciones asincrónicas como lectura de archivos, llamadas a API, temporizadores, entre otros.
Aquí te dejo un pequeño ejemplo de cómo puedes usar una promesa en JavaScript:
1. Crear una promesa:
```javascript
let miPromesa = new Promise((resolve, reject) => {
let expresion = true;
if(expresion)
resolve(‘Resolvió correctamente’);
else
reject(‘Hubo un error’);
});
```
En el ejemplo anterior, `resolve` y `reject` son funciones que se ejecutan según el resultado de la operación asincrónica (representada en `expresion`).
2. Utilizar una promesa:
Hacer uso de una promesa implica manejar los resultados que puedan surgir, tanto si la operación fue exitosa como si no lo fue. Para eso se utilizan los métodos `then` (cuando la promesa se resuelve de manera exitosa) y `catch` (cuando la promesa es rechazada).
```javascript
miPromesa
.then(valor => console.log(valor)) // “Resolvió correctamente
.catch(error => console.log(error)); // “Hubo un error”.
```
3. Utilizar varias promesas:
También puedes ejecutar varias promesas al mismo tiempo y esperar a que todas ellas se resuelvan con éxito utilizando `Promise.all`. Esto es útil para evitar el problema de “callback hell” en JavaScript.
```javascript
const promesa1 = new Promise((resolve, reject) => { /*…*/ });
const promesa2 = new Promise((resolve, reject) => { /*…*/ });
Promise.all([promesa1, promesa2])
.then(resultados => {
console.log(resultados0); // Resultado de la promesa1
console.log(resultados1); // Resultado de la promesa2
})
.catch(error => console.log(error));
```
4. Manejar un conjunto de promesas donde solamente necesitamos que una de ellas se resuelva exitosamente, podemos usar `Promise.race()`, que nos devolverá la respuesta de la primera promesa que se resuelva.
```javascript
const promesa1 = new Promise((resolve, reject) => { /*…*/ });
const promesa2 = new Promise((resolve, reject) => { /*…*/ });
Promise.race([promesa1, promesa2])
.then(resultados => {
console.log(resultados); // Resultado de la primera promesa en resolverse
})
.catch(error => console.log(error));
```