/* CREACIÓN DE PROMISE */
const usuarioAutenticado = new Promise( (resolve,reject)=>{
        //const auth = false;
        const auth = true;
        
		/* aqui ponemos todo el codigo y evaluamos auth 
			el resultado nos dara la respuesta
			reject o fulfilled
			durante este codigo el estado es "Pending"
			generamos un resultado del proceso
		*/
		const resultado = 'Nombre del cliente';
		
		/* en el caso de promes incumplida 
		   el proceso no pudo realizarse correctamente 
		   generamos un resultado de error
		   que lo pasamos en el reject */
		const resultado_error = 'No se encontro el cliente';		   

		/* le pasamos el resultado al resolve 
		   que despues el .then recibirá */
    if(auth) {
        resolve(resultado); // el promise se cumple
        // lo vemos con .then
    } else {
        reject(resultado_error ); // el promise no se cumple
        // lo vemos con .catch
    }
})
/* VER EL ESTADO */
console.log(usuarioAutenticado);

/* EJECUTAR LA PROMISE, en el caso positivo
ejecutamos una función PromiseCorrecta() */
usuarioAutenticado
		/* en caso positivo ejecuta algo 
		   con el valor resultado */
    .then(function(resultado){
        PromiseCorrecta(resultado);
    })
    .catch(function(error){
        PromiseIncorrecta(error);
    })
    
function PromiseCorrecta(resultado) {
    console.log('Promesa Cumplida');
    console.log(resultado);
}

function PromiseIncorrecta(error) {
    console.log('Promesa No Cumplida');
    console.log(error);
}
/* En los promises existe 3 valores
- Pending: No se ha complido pero no se ha rechazado
- Fulfilled: Se cumplió
- Reject: Se ha rechazado o no se pudo cumplir
*/