File tree Expand file tree Collapse file tree 1 file changed +36
-0
lines changed
Roadmap/15 - ASINCRONÍA/javascript Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Original file line number Diff line number Diff line change
1
+ // Asincronia
2
+
3
+
4
+
5
+ /**
6
+ * Función asíncrona que simula una tarea que tarda un tiempo en completarse.
7
+ * @param {string } nombre - El nombre de la tarea.
8
+ * @param {number } segundos - El número de segundos que durará la tarea.
9
+ */
10
+ async function ejecutarTarea ( nombre , segundos ) {
11
+ const inicio = new Date ( ) ;
12
+ console . log ( `[${ inicio . toLocaleTimeString ( ) } ] Tarea "${ nombre } " iniciada. Duración: ${ segundos } segundos.` ) ;
13
+
14
+ // Simulamos la tarea asíncrona con un setTimeout dentro de una promesa
15
+ await new Promise ( ( resolve ) => {
16
+ setTimeout ( resolve , segundos * 1000 ) ;
17
+ } ) ;
18
+
19
+ const fin = new Date ( ) ;
20
+ console . log ( `[${ fin . toLocaleTimeString ( ) } ] Tarea "${ nombre } " finalizada.` ) ;
21
+ }
22
+
23
+ /**
24
+ * Función principal para ejecutar tareas asíncronas.
25
+ */
26
+ async function main ( ) {
27
+ // Ejecutamos varias tareas asíncronas
28
+ await ejecutarTarea ( "Tarea 1" , 3 ) ; // Tarea 1 dura 3 segundos
29
+ await ejecutarTarea ( "Tarea 2" , 5 ) ; // Tarea 2 dura 5 segundos
30
+ await ejecutarTarea ( "Tarea 3" , 2 ) ; // Tarea 3 dura 2 segundos
31
+
32
+ console . log ( "Todas las tareas han finalizado." ) ;
33
+ }
34
+
35
+ // Llamamos a la función principal
36
+ main ( ) ;
You can’t perform that action at this time.
0 commit comments