Skip to content

Commit 043cc50

Browse files
committed
mouredev#15 - TypeScript & JavaScript
1 parent ab66b57 commit 043cc50

File tree

2 files changed

+148
-0
lines changed

2 files changed

+148
-0
lines changed
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
const asyncFunction = async (name, seconds) => {
2+
console.log(`Inicia la ejecucion de ${name}`)
3+
console.log(`Duracion de ${name}: ${seconds} segundos`)
4+
5+
await new Promise(res => {
6+
setTimeout(res, seconds * 1000)
7+
})
8+
9+
console.log(`Finaliza la ejecuncion de ${name}`)
10+
}
11+
12+
const main = async () => {
13+
const promise1 = asyncFunction('Funcion 1', 5)
14+
const promise2 = asyncFunction('Funcion 2', 3)
15+
16+
await Promise.all([promise1, promise2])
17+
}
18+
19+
main()
20+
21+
22+
// DIFICULTAD EXTRA
23+
24+
const funcionC = async () => {
25+
console.log(`Inicia la ejecucion de la funcion C`)
26+
27+
await new Promise(res => {
28+
setTimeout(res, 3000)
29+
})
30+
31+
console.log(`Finaliza la ejecucion de la funcion C luego de 3 segundos`)
32+
}
33+
34+
const funcionB = async () => {
35+
console.log(`Inicia la ejecucion de la funcion B`)
36+
37+
await new Promise(res => {
38+
setTimeout(res, 2000)
39+
})
40+
41+
console.log(`Finaliza la ejecucion de la funcion B luego de 2 segundos`)
42+
}
43+
44+
const funcionA = async () => {
45+
console.log(`Inicia la ejecucion de la funcion A`)
46+
47+
await new Promise(res => {
48+
setTimeout(res, 1000)
49+
})
50+
51+
console.log(`Finaliza la ejecucion de la funcion A luego de 1 segundo`)
52+
}
53+
54+
const funcionD = async () => {
55+
console.log(`Inicia la ejecucion de la funcion D`)
56+
57+
await new Promise(res => {
58+
setTimeout(res, 1000)
59+
})
60+
61+
console.log(`Finaliza la ejecucion de la funcion D luego de 1 segundo`)
62+
}
63+
64+
const mainFunction = async () => {
65+
const respuestaC = funcionC()
66+
const respuestaB = funcionB()
67+
const respuestaA = funcionA()
68+
69+
await Promise.all([respuestaC, respuestaB, respuestaA])
70+
71+
const respuestaD = await funcionD()
72+
}
73+
74+
mainFunction()
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
const asyncFunction: (name: string, seconds: number) => Promise<void> = async (name: string, seconds: number) => {
2+
console.log(`Inicia la ejecucion de ${name}`)
3+
console.log(`Duracion de ${name}: ${seconds} segundos`)
4+
5+
await new Promise<void>(res => {
6+
setTimeout(res, seconds * 1000)
7+
})
8+
9+
console.log(`Finaliza la ejecuncion de ${name}`)
10+
}
11+
12+
const main: () => Promise<void> = async () => {
13+
const promise1: Promise<void> = asyncFunction('Funcion 1', 5)
14+
const promise2: Promise<void> = asyncFunction('Funcion 2', 3)
15+
16+
await Promise.all([promise1, promise2])
17+
}
18+
19+
main()
20+
21+
22+
// DIFICULTAD EXTRA
23+
24+
const funcionC: () => Promise<void> = async () => {
25+
console.log(`Inicia la ejecucion de la funcion C`)
26+
27+
await new Promise<void>(res => {
28+
setTimeout(res, 3000)
29+
})
30+
31+
console.log(`Finaliza la ejecucion de la funcion C luego de 3 segundos`)
32+
}
33+
34+
const funcionB: () => Promise<void> = async () => {
35+
console.log(`Inicia la ejecucion de la funcion B`)
36+
37+
await new Promise<void>(res => {
38+
setTimeout(res, 2000)
39+
})
40+
41+
console.log(`Finaliza la ejecucion de la funcion B luego de 2 segundos`)
42+
}
43+
44+
const funcionA: () => Promise<void> = async () => {
45+
console.log(`Inicia la ejecucion de la funcion A`)
46+
47+
await new Promise<void>(res => {
48+
setTimeout(res, 1000)
49+
})
50+
51+
console.log(`Finaliza la ejecucion de la funcion A luego de 1 segundo`)
52+
}
53+
54+
const funcionD: () => Promise<void> = async () => {
55+
console.log(`Inicia la ejecucion de la funcion D`)
56+
57+
await new Promise<void>(res => {
58+
setTimeout(res, 1000)
59+
})
60+
61+
console.log(`Finaliza la ejecucion de la funcion D luego de 1 segundo`)
62+
}
63+
64+
const mainFunction: () => Promise<void> = async () => {
65+
const respuestaC: Promise<void> = funcionC()
66+
const respuestaB: Promise<void> = funcionB()
67+
const respuestaA: Promise<void> = funcionA()
68+
69+
await Promise.all([respuestaC, respuestaB, respuestaA])
70+
71+
const respuestaD: void = await funcionD()
72+
}
73+
74+
mainFunction()

0 commit comments

Comments
 (0)