1
+ const funcionAsincrona = async ( nombre , tiempo ) => {
2
+ console . log ( `La función "${ nombre } " comienza. Duración esperada: ${ tiempo } segundos.` )
3
+ const inicio = new Date ( ) ;
4
+ console . log ( `Inicio: ${ inicio . toLocaleTimeString ( ) } ` ) ;
5
+
6
+ await new Promise ( resolve => setTimeout ( resolve , tiempo * 1000 ) )
7
+
8
+ const fin = new Date ( ) ;
9
+ console . log ( `La función "${ nombre } " ha finalizado.` ) ;
10
+ console . log ( `Fin: ${ fin . toLocaleTimeString ( ) } ` ) ;
11
+ }
12
+
13
+ funcionAsincrona ( "Proceso 1" , 5 )
14
+
15
+ // DIFICULTAD EXTRA
16
+ const funcionC = async ( ) => {
17
+ console . log ( 'La función C comienza. Duración esperada: 3 segundos.' )
18
+ const inicio = new Date ( ) ;
19
+ console . log ( `Inicio: ${ inicio . toLocaleTimeString ( ) } ` ) ;
20
+
21
+ await new Promise ( resolve => setTimeout ( resolve , 3000 ) )
22
+
23
+ const fin = new Date ( ) ;
24
+ console . log ( `La función C ha finalizado.` ) ;
25
+ console . log ( `Fin: ${ fin . toLocaleTimeString ( ) } ` ) ;
26
+ }
27
+
28
+ const funcionB = async ( ) => {
29
+ console . log ( 'La función B comienza. Duración esperada: 2 segundos.' )
30
+ const inicio = new Date ( ) ;
31
+ console . log ( `Inicio: ${ inicio . toLocaleTimeString ( ) } ` ) ;
32
+
33
+ await new Promise ( resolve => setTimeout ( resolve , 2000 ) )
34
+
35
+ const fin = new Date ( ) ;
36
+ console . log ( `La función B ha finalizado.` ) ;
37
+ console . log ( `Fin: ${ fin . toLocaleTimeString ( ) } ` ) ;
38
+ }
39
+
40
+ const funcionA = async ( ) => {
41
+ console . log ( 'La función A comienza. Duración esperada: 1 segundos.' )
42
+ const inicio = new Date ( ) ;
43
+ console . log ( `Inicio: ${ inicio . toLocaleTimeString ( ) } ` ) ;
44
+
45
+ await new Promise ( resolve => setTimeout ( resolve , 1000 ) )
46
+
47
+ const fin = new Date ( ) ;
48
+ console . log ( `La función A ha finalizado.` ) ;
49
+ console . log ( `Fin: ${ fin . toLocaleTimeString ( ) } ` ) ;
50
+ }
51
+
52
+ const funcionD = async ( ) => {
53
+ console . log ( 'La función D comienza. Duración esperada: 1 segundos.' )
54
+ const inicio = new Date ( ) ;
55
+ console . log ( `Inicio: ${ inicio . toLocaleTimeString ( ) } ` ) ;
56
+
57
+ await new Promise ( resolve => setTimeout ( resolve , 1000 ) )
58
+
59
+ const fin = new Date ( ) ;
60
+ console . log ( `La función D ha finalizado.` ) ;
61
+ console . log ( `Fin: ${ fin . toLocaleTimeString ( ) } ` ) ;
62
+ }
63
+
64
+ const main = async ( ) => {
65
+ const C = funcionC ( )
66
+ const B = funcionB ( )
67
+ const A = funcionA ( )
68
+
69
+ await Promise . all ( [ C , B , A ] )
70
+
71
+ const D = funcionD ( )
72
+ }
73
+
74
+ main ( )
0 commit comments