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