Skip to content

Commit 86a2f8d

Browse files
committed
#15 - Javascript
1 parent 5f64472 commit 86a2f8d

File tree

1 file changed

+74
-0
lines changed

1 file changed

+74
-0
lines changed
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
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+
10+
const asyncFunction = async (name, seconds) => {
11+
console.log(`Inicio de la ejecucion ${name}`);
12+
console.log(`Duracion de ${name}: ${seconds} segundos..`);
13+
14+
await new Promise((res) => {
15+
setTimeout(res, seconds * 1000);
16+
});
17+
18+
console.log(`Fin de la ejecucion: ${name}`);
19+
};
20+
21+
const main = async () => {
22+
const promise1 = asyncFunction("Funcion 1", 2);
23+
24+
await Promise.all([promise1]);
25+
};
26+
27+
// main();
28+
29+
/* DIFICULTAD EXTRA (opcional):
30+
* Utilizando el concepto de asincronía y la función anterior, crea
31+
* el siguiente programa que ejecuta en este orden:
32+
* - Una función C que dura 3 segundos.
33+
* - Una función B que dura 2 segundos.
34+
* - Una función A que dura 1 segundo.
35+
* - Una función D que dura 1 segundo.
36+
* - Las funciones C, B y A se ejecutan en paralelo.
37+
* - La función D comienza su ejecución cuando las 3 anteriores han
38+
* finalizado.
39+
*/
40+
const funcionC = async () => {
41+
await setTimeout(() => {
42+
console.log("función C");
43+
}, 3000);
44+
};
45+
46+
const funcionB = async () => {
47+
await setTimeout(() => {
48+
console.log("función B");
49+
}, 2000);
50+
};
51+
52+
const funcionA = async () => {
53+
await setTimeout(() => {
54+
console.log("función A");
55+
}, 1000);
56+
};
57+
58+
const funcionD = async () => {
59+
await setTimeout(() => {
60+
console.log("función D");
61+
}, 1000);
62+
};
63+
64+
const main2 = async () => {
65+
const res1 = funcionC();
66+
const res2 = funcionB();
67+
const res3 = funcionA();
68+
69+
await Promise.all([res1, res2, res3]);
70+
71+
const res4 = await funcionD();
72+
};
73+
74+
main2;

0 commit comments

Comments
 (0)