Skip to content

Commit 934e9f5

Browse files
committed
15 - js - ASINCRONÍA
1 parent b5e74c2 commit 934e9f5

File tree

1 file changed

+58
-0
lines changed

1 file changed

+58
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
/*
2+
_____________________________________
3+
https://github.com/kenysdev
4+
2024 - JavaScript
5+
_______________________________________
6+
#15 ASINCRONÍA
7+
---------------------------------------
8+
 * EJERCICIO:
9+
 * Utilizando tu lenguaje, crea un programa capaz de ejecutar de manera
10+
 * asíncrona una función que tardará en finalizar un número concreto de
11+
 * segundos parametrizables. También debes poder asignarle un nombre.
12+
 * La función imprime su nombre, cuándo empieza, el tiempo que durará
13+
 * su ejecución y cuando finaliza.
14+
 *
15+
 * DIFICULTAD EXTRA (opcional):
16+
 * Utilizando el concepto de asincronía y la función anterior, crea
17+
 * el siguiente programa que ejecuta en este orden:
18+
 * - Una función C que dura 3 segundos.
19+
 * - Una función B que dura 2 segundos.
20+
 * - Una función A que dura 1 segundo.
21+
 * - Una función D que dura 1 segundo.
22+
 * - Las funciones C, B y A se ejecutan en paralelo.
23+
 * - La función D comienza su ejecución cuando las 3 anteriores han
24+
 *   finalizado.
25+
*/
26+
// ________________________________________________________
27+
28+
async function process(name, time) {
29+
console.log(`- Iniciar función: ${name} -> Duración: ${time}s`);
30+
await new Promise(resolve => setTimeout(resolve, time * 1000));
31+
console.log(`* Función ${name} finaliza.`);
32+
}
33+
34+
async function test() {
35+
await Promise.all([
36+
process("Test 2", 4),
37+
process("Test 1", 2)
38+
]);
39+
}
40+
41+
// ________________________________________________________
42+
// DIFICULTAD EXTRA
43+
44+
async function in_parallel() {
45+
await Promise.all([
46+
process("C", 3),
47+
process("B", 2),
48+
process("A", 1)
49+
]);
50+
}
51+
52+
async function main() {
53+
await test();
54+
await in_parallel();
55+
await process("D", 1);
56+
}
57+
58+
main();

0 commit comments

Comments
 (0)