Junior
¿En qué consiste la diferencia entre async/await y Promise?
sobes.tech AI
Respuesta de la IA
async/await es un azúcar sintáctico sobre las promesas. Permite escribir código asíncrono de manera más legible y similar a síncrono, usando las palabras clave async para funciones que contienen await para esperar la resolución de una promesa. Las promesas son objetos que representan la finalización (o fallo) de una operación asíncrona y su valor resultante.
| Característica | async/await | Promesa |
|---|---|---|
| Sintaxis | Más parecido al código síncrono. | Usa métodos .then(), .catch(), .finally(). |
| Legibilidad | Generalmente más alta, especialmente en cadenas. | Puede llevar a "Callback hell" en cadenas complejas. |
| Manejo de errores | Usa try...catch estándar. |
Usa .catch() o el segundo argumento en .then(). |
| Paralelismo | Requiere usar explícitamente Promise.all() o Promise.allSettled(). |
Puede ser más explícito, pero menos legible sin async/await. |
// Ejemplo con Promise
function getDataPromise() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Datos recibidos');
}, 1000);
});
}
getDataPromise()
.then(data => {
console.log(data);
})
.catch(error => {
console.error(error);
});
// Ejemplo con async/await
async function getDataAsync() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Datos recibidos');
}, 1000);
});
}
async function processData() {
try {
const data = await getDataAsync();
console.log(data);
} catch (error) {
console.error(error);
}
}
processData();