Qué son y cómo funcionan las promesas en JavaScript
1 min readJun 4, 2017
Manejar flujos de datos asíncronos es complejo, quién no ha terminado con código como este:
checkWeather('buenos aires', (error, weather) => {
if (error) throw error;
if (weather === 'well') {
return checkFlights('buenos aires', (err, flights) => {
if (err) throw err;
buyTicket(flights[0], (e, ticket) => {
if (e) throw e;
console.log('ticket nº %d', ticket.number);
});
});
}
console.log('el clima es malo');
});
Esto se conoce como el callback hell, un código complejo y difícil de mantener, pero existe una solución, Promesas. El código anterior con promesas sería algo similar a esto:
checkWatcher('buenos aires')
.then(weather => {
if (weather === 'well') {
return checkFlights('buenos aires');
}
throw new Error('el clima es malo');
})
.then(flights => buyTicket(flights[0]))
.then(ticket => {
console.log('ticket nº %d', ticket.number);
})
.catch(error => console.error(error));
Menos líneas y mucha menos indentación en el código, pero entendamos como funciona una promesa.