El promise de JS es una función que en sí es difícil de entender, pero que una vez se le coge el truco, es muy útil y utilizada en la programación con JS. Vamos a intentar explicar que es y vamos a ver un ejemplo de este mismo.

Según developer.mozilla sobre Promise obtenemos esta descripción:

El objeto Promise (Promesa) es usado para computaciones asíncronas. Una promesa representa un valor que puede estar disponible ahora, en el futuro, o nunca.

Esto nos dice que vamos obtener un valor, independiente a la carga de la página, en cualquier momento, este valor puede ser obtenido por una llamada realizada con éxito o no.

Por parte del promise necesitará 2 argumentos, resolver y rechazar. Cuando se ejecuta se les pasa los argumentos y el promise mandará una promesa resuelta si todo ha salido de forma correcta o si no este la rechazará.

Veamos mejor un ejemplo muy sencillo:

let getCurrentTime = new Promise((resolve, reject) => {
    setTimeout(() => {
        let didSucceed = Math.random() >= 0.5;
        didSucceed ? resolve(new Date()) : reject('Error');}, 2000);
})

getCurrentTime
    .then(currentTime => {
        console.log('The current time is: ' + currentTime);
    })
    .catch(err => console.log('There was an error:' + err))

Aquí vemos que tenemos una promesa, donde de forma aleatoria, llamará al resolve indicando que todo ha salido bien o al reject en caso contrario, esto podríamos hacer nuestra llamada a una API y aquí hacer lo correspondiente al resultado devuelto, un poco, como una llamada AJAX.

Después llamamos a la promesa donde si ha saltado el resolve al hacer el then nos devolverá el parámetro del objeto devuelto, en este caso sería un string, en caso contrario saltaría el catch.

Gracias por leer el artículo!.