Skip to content

Commit 003fb3e

Browse files
committed
#15 - javaScript
1 parent 58a266f commit 003fb3e

File tree

1 file changed

+87
-0
lines changed

1 file changed

+87
-0
lines changed
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
/*
2+
* EJERCICIO:
3+
* Utilizando tu lenguaje, crea un programa capaz de ejecutar de manera
4+
* asíncrona una función que tardará en finalizar un número concreto de
5+
* segundos parametrizables. También debes poder asignarle un nombre.
6+
* La función imprime su nombre, cuándo empieza, el tiempo que durará
7+
* su ejecución y cuando finaliza.
8+
*
9+
* DIFICULTAD EXTRA (opcional):
10+
* Utilizando el concepto de asincronía y la función anterior, crea
11+
* el siguiente programa que ejecuta en este orden:
12+
* - Una función C que dura 3 segundos.
13+
* - Una función B que dura 2 segundos.
14+
* - Una función A que dura 1 segundo.
15+
* - Una función D que dura 1 segundo.
16+
* - Las funciones C, B y A se ejecutan en paralelo.
17+
* - La función D comienza su ejecución cuando las 3 anteriores han
18+
* finalizado.
19+
*/
20+
21+
// const cafeFiltrado = async (nombre, segundos) => {
22+
// console.log(`Metodo de filtrado: ${nombre}`);
23+
// console.log(`Duración: ${segundos} segundos`);
24+
25+
// const inicio = new Date();
26+
27+
// await new Promise((resolve) => setTimeout(resolve, segundos * 1000));
28+
29+
// const termino = new Date();
30+
31+
// console.log(`Cafe listo con el metodo: ${nombre}`);
32+
// console.log(`Tiempo transcurrido: ${(termino - inicio) / 1000} segundos`);
33+
// };
34+
35+
// cafeFiltrado("v60", 5);
36+
37+
// Ejercicio extra
38+
39+
const funcionC = async (nombre, segundos) => {
40+
console.log(`Nombre: ${nombre}`);
41+
console.log(`Duración: ${segundos}`);
42+
43+
await new Promise((resolve) => setTimeout(resolve, segundos * 1000));
44+
45+
console.log(`Terminado en: ${segundos}s`);
46+
};
47+
48+
funcionC("Cafe", 3);
49+
50+
const funcionB = async (nombre, segundos) => {
51+
console.log(`Nombre: ${nombre}`);
52+
console.log(`Duración: ${segundos}`);
53+
54+
await new Promise((resolve) => setTimeout(resolve, segundos * 1000));
55+
56+
console.log(`Terminado en: ${segundos}s`);
57+
};
58+
59+
funcionB("Pastel", 2);
60+
61+
const funcionA = async (nombre, segundos) => {
62+
console.log(`Nombre: ${nombre}`);
63+
console.log(`Duración: ${segundos}`);
64+
65+
await new Promise((resolve) => setTimeout(resolve, segundos * 1000));
66+
67+
console.log(`Terminado en: ${segundos}s`);
68+
};
69+
70+
funcionA("Pan", 1);
71+
72+
const funcionD = async (nombre, segundos) => {
73+
console.log(`Nombre: ${nombre}`);
74+
console.log(`Duración: ${segundos}`);
75+
76+
await new Promise((resolve) => setTimeout(resolve, segundos * 1000));
77+
78+
console.log(`Terminado en: ${segundos}s`);
79+
};
80+
81+
funcionD("mantequilla", 1);
82+
83+
const cafeteria = async () => {
84+
await Promise.all([funcionC(), funcionB(), funcionA()]);
85+
86+
await funcionD();
87+
};

0 commit comments

Comments
 (0)