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