El manejo de errores en las promesas puede ser bastante diferente al manejo de errores en el código sincrónico. En las promesas, los errores se manejan con el método `.catch()` o el segundo argumento de `.then`.
Aquí hay un ejemplo de cómo puedes manejar errores con Promesas.
```javascript
let promesa = new Promise((resolve, reject) => {
// simulamos una operación asíncrona
setTimeout(() => {
let resultado = Math.random(); // obtiene un número aleatorio entre 0 y 1
if (resultado > 0.5) {
resolve(“La operación fue exitosa: “ + resultado);
} else {
reject(“Error: el número aleatorio es menor que 0.5: “ + resultado);
}
}, 1000);
});
promesa
.then(
respuesta => console.log(respuesta),
error => console.log(error)
);
```
En este ejemplo, el método `.then` está configurado con dos callbacks, uno para manejar el éxito y el otro para manejar el error. Si ocurre un error en la promesa (es decir, si se invoca la función `reject`), el segundo callback de `.then` recibe el error.
También puedes usar el método `.catch` para manejar los errores.
```javascript
promesa
.then(respuesta => console.log(respuesta))
.catch(error => console.log(error));
```
En este ejemplo, el callback de `.catch` se invoca cuando la promesa falla.
Es importante notar que cualquier error que ocurra en una promesa que no sea manejado con `.catch` o el segundo callback de `.then` resultará en una ‘unhandled promise rejection’, que es similar a un error no capturado en código sincrónico.