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