curso node promises promesas

vamos a usar ahora Promises, entonces tomaremos una funcion que habiamos hecho antes
y la transformaremos:

let getEmpleado=(id,callback)=>{
let empleadoEncontrado=empleados.find(empleado => empleado.id === id);

    if(!empleadoEncontrado){
    callback(`no se encontro ningun empledo con id: ${id}`);
    }else{
    callback(null,empleadoEncontrado);
    }

}


let getEmpleado=(id)=>{

    return new Promise( (resolve,reject)=>{
   
        let empleadoEncontrado=empleados.find(empleado => empleado.id === id);

        if(!empleadoEncontrado){
            reject(`no se encontro ningun empledo con id: ${id}`);
        }else{
            resolve(empleadoEncontrado);
        }

    });

}
internamente la promesa tiene 2 callbacks de exito y error: resolve y reject

entonces ahora podemos llamar a la funcion asi:

getEmpleado(3).then(empleado=>{
    console.log('Empleado hallado en la BD',empleado);
   
},error=>{
    console.log(error);
})


ahora hagamos una funcion que devuelva el salario de un empleado:

let getSalario=(empleado)=>{
    return new Promise((resolve,reject)=>{
        let salarioEncontrado=salarios.find(salario => salario.empleado_id === empleado.id);

        if(!salarioEncontrado){
            reject(`no se encontro ningun salario para el empleado: ${empleado.nombre}`);
        }else{
            let respuesta={
                nombre:empleado.nombre,
                salario: salarioEncontrado.salario
            };
            resolve(respuesta);
        }
    });
}


y lo llamariamos asi:

getEmpleado(3).then(empleado=>{

    return getSalario(empleado)

}).then(salario=>{
        console.log('Salario',salario);
},error=>{
    console.log(error);
})

y para simplificar el manejo del error (el manejo del error es para ambas promises)

getEmpleado(3).then(empleado=>{
    return getSalario(empleado)
}).then(salario=>{
    console.log('Salario',salario);
}).catch(error=>{
    console.log(error);
})


No hay comentarios:

Publicar un comentario

linux ubuntu mint actualizar chrome

 desde una terminal: $ sudo apt update $ sudo apt install google-chrome-stable