JavaScript

Promesas en JavaScript

Las promesas son una de las tantas formas en que podemos manejar las operaciones asincrónicas en JavaScript evitando los callback hell, es una forma ordenada de lanzar funciones y continuar con la ejecución sin necesidad de bloquear el hilo de ejecución, muchas personas tienen alguna dificultad en comprender cómo funcionan las promesas, sin embargo una promesa es un objeto que retorna un éxito o un fracaso.

Un ejemplo de la vida real es cuando una persona va a un restaurant de comida rápida o de comida para llevar, ordena su comida, paga de antemano, le entregan el ticket sin embargo tiene que esperar a que le preparen la comida para poderesa llevar, el cliente tiene la promesa de que el restaurant le entregara su comida, entonces finalmente pueden pasar dos cosas, en la mayoría de los casos el restaurant entregará la comida que desde el punto de vista de JS quiere decir que resolverá la promesa, sin embargo pueden darse situaciones como que el restaurant se quedó sin ingredientes o se le incendió la cocina y la promesa que hizo incialmente no se cumplira, es decir sera rechazada tambien hablando desde el punto de vista de JS.

Lo primero es definir una función que retorna un objeto promesa que dentro realizará una tarea, esta en caso de resolver con éxito su tarea mediante resolve si tuvo éxito o rechazara la promesa con reject si falló miserablemente.

Existe un tercer estado aparte de resolve y reject que es pending que es como su nombre lo indica es cuando está esperando a ser ejecutada, todas las promesas arrancan en ese estado hasta adquirir alguno de los otros dos.

Al ejecutar la promesa podemos capturar el éxito con response o el error err y actuar en consecuencia, en el ejemplo simplemente muestra un mensaje en la consola sin embargo las posibilidades  y los usos son infinitos.

const promiseTest = () => {
    return new Promise((resolve,reject) => {
        if (true) {
            resolve('It's working fine');
        } else {
            reject('Oh crap!!!');
        }

    });
};

promiseTest()
.then(response => console.log(response))
.catch(err=> console.error(err));

Como podemos ver no es nada complicado

Compartir
Publicado por
Alvaro De León

Entradas recientes

Estadisticas de EasyMySQL

Normalmente, a las estadísticas del blog no le presto demasiada atención, sin embargo, trabajando en…

17 hours hace

Nueva pagina de Publicaciones

La idea principal detrás de este blog es marca personal, el blog es para centralizar…

1 week hace

Migrar una maquina virtual desde VirtualBox a KVM

El migrar el disco duro es bastante sencillo como se verá a continuación, la principal…

2 weeks hace

Instalar QEMU/KVM y Virtual Machine Manager

Cuando se trata de virtualización en el escritorio, una de las primeras opciones son sin…

1 month hace

Instalar adaptador WIFI TP-Link AX 1800/ Archer TX20U en Debian y Ubuntu

Siempre he sido un ferviente defensor de una conexión por cable UTP para trabajar por…

2 months hace

Nuevo dominio para el blog, otra vez!!!

Al fin pude recuperar alvarodeleon.com, no es que lo hubiera perdido, fue peor, lo deje…

3 months hace