1
+ /* EJERCICIO:
2
+ * Utilizando tu lenguaje, crea un programa capaz de ejecutar de manera
3
+ * asíncrona una función que tardará en finalizar un número concreto de
4
+ * segundos parametrizables. También debes poder asignarle un nombre.
5
+ * La función imprime su nombre, cuándo empieza, el tiempo que durará
6
+ * su ejecución y cuando finaliza.*/
7
+
8
+ function asincrona ( nombre , segundos ) {
9
+ console . log ( `${ nombre } comienza.` ) ;
10
+ console . log ( `${ nombre } empezó a las ${ new Date ( ) . toLocaleTimeString ( ) } .` ) ;
11
+ return new Promise ( ( resolve , reject ) => {
12
+ setTimeout ( ( ) => {
13
+ console . log ( `${ nombre } ha finalizado después de ${ segundos } segundos.` ) ;
14
+ console . log ( `${ nombre } terminó a las ${ new Date ( ) . toLocaleTimeString ( ) } .` ) ;
15
+ resolve ( ) ;
16
+ } , segundos * 1000 ) ;
17
+ } ) ;
18
+ }
19
+ asincrona ( "El programa" , 13 ) ;
20
+
21
+ //EXTRA
22
+ /*Utilizando el concepto de asincronía y la función anterior, crea
23
+ * el siguiente programa que ejecuta en este orden:
24
+ * - Una función C que dura 3 segundos.
25
+ * - Una función B que dura 2 segundos.
26
+ * - Una función A que dura 1 segundo.
27
+ * - Una función D que dura 1 segundo.
28
+ * - Las funciones C, B y A se ejecutan en paralelo.
29
+ * - La función D comienza su ejecución cuando las 3 anteriores han finalizado.*/
30
+
31
+ async function programa ( ) {
32
+ try {
33
+ await Promise . all ( [
34
+ asincrona ( "Función C" , 3 ) ,
35
+ asincrona ( "Función B" , 2 ) ,
36
+ asincrona ( "Función A" , 1 )
37
+ ] ) ;
38
+ await asincrona ( "Función D" , 1 ) ;
39
+ } catch ( error ) {
40
+ console . log ( "Se produjo un error:" , error ) ;
41
+ }
42
+ }
43
+
44
+ programa ( ) ;
0 commit comments