-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathasync-await2.js
46 lines (41 loc) · 1.32 KB
/
async-await2.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
const empleados = [
{ id: 1, nombre: "Pepito" },
{ id: 2, nombre: "Carlos" },
{ id: 3, nombre: "Marlon" },
];
const salarios = [
{ id: 1, salario: 800 },
{ id: 2, salario: 950 },
];
const getEmpleado = async (id) => {
const empleadoDB = empleados.find((empleado) => empleado.id === id);
if (!empleadoDB) {
// red rechaza la promesa
throw new Error(`No existe un empleado con id ${id}`);
} else {
// resuelve la promesa
return empleadoDB;
}
};
const getSalario = async (empleado) => {
const salarioDB = salarios.find((salario) => salario.id === empleado.id);
if (!salarioDB) {
throw new Error(
`No se encontró salario para el empleado ${empleado.nombre}`
);
} else {
return { nombre: empleado.nombre, salario: salarioDB };
}
};
// funcion asincrona recibe el id y buscará en los objetos un id que coincida
const getInfo = async (id) => {
// este await pausa la ejecucion hasta que la promesa se resuelva o se rechace
const empleado = await getEmpleado(id);
// este await pausa la ejecucion hasta que la promesa se resuelva o se rechace
const respuesta = await getSalario(empleado);
// la promesa fue resuelta
return `El salario de ${respuesta.nombre} es de ${respuesta.salario}`;
};
getInfo(3)
.then((mensaje) => console.log(mensaje))
.catch((err) => console.error(err));