Skip to content

Commit 9759f73

Browse files
committed
#21 - JavaScript
1 parent 314fedb commit 9759f73

File tree

1 file changed

+84
-0
lines changed

1 file changed

+84
-0
lines changed
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
// Función que toma un número y un callback
2+
function procesarNumero(numero, callback) {
3+
// Simulamos una operación asincrónica con setTimeout
4+
setTimeout(() => {
5+
let resultado = numero * 2;
6+
callback(resultado);
7+
}, 1000);
8+
}
9+
10+
// Función callback que se ejecutará después de procesar el número
11+
function mostrarResultado(resultado) {
12+
console.log("El resultado es:", resultado);
13+
}
14+
15+
// Llamamos a la función procesarNumero y le pasamos 5 como número y mostrarResultado como callback
16+
procesarNumero(5, mostrarResultado);
17+
18+
// Ejercicio extra
19+
20+
// Función que genera un tiempo aleatorio entre 1 y 10 segundos
21+
function tiempoAleatorio() {
22+
return Math.floor(Math.random() * 10000) + 1000;
23+
}
24+
25+
// Función que procesa pedidos
26+
function procesarPedido(
27+
nombrePlato,
28+
callbackConfirmacion,
29+
callbackListo,
30+
callbackEntrega
31+
) {
32+
console.log(`Pedido recibido: ${nombrePlato}`);
33+
34+
// Confirmar el pedido
35+
setTimeout(() => {
36+
console.log(`Confirmación: El pedido de ${nombrePlato} está en proceso.`);
37+
callbackConfirmacion(nombrePlato);
38+
39+
// Notificar que el plato está listo
40+
setTimeout(() => {
41+
console.log(`Listo: El plato ${nombrePlato} está listo.`);
42+
callbackListo(nombrePlato);
43+
44+
// Notificar que el plato ha sido entregado
45+
setTimeout(() => {
46+
console.log(`Entrega: El plato ${nombrePlato} ha sido entregado.`);
47+
callbackEntrega(nombrePlato);
48+
}, tiempoAleatorio());
49+
}, tiempoAleatorio());
50+
}, tiempoAleatorio());
51+
}
52+
53+
// Funciones callback
54+
function confirmacionCallback(plato) {
55+
console.log(`Callback de confirmación: ${plato} está siendo preparado.`);
56+
}
57+
58+
function listoCallback(plato) {
59+
console.log(`Callback de listo: ${plato} está listo para ser entregado.`);
60+
}
61+
62+
function entregaCallback(plato) {
63+
console.log(`Callback de entrega: ${plato} ha sido entregado al cliente.`);
64+
}
65+
66+
// Ejemplos
67+
procesarPedido(
68+
"Pizza Carne",
69+
confirmacionCallback,
70+
listoCallback,
71+
entregaCallback
72+
);
73+
procesarPedido(
74+
"Ensalada",
75+
confirmacionCallback,
76+
listoCallback,
77+
entregaCallback
78+
);
79+
procesarPedido(
80+
"Tiramisú",
81+
confirmacionCallback,
82+
listoCallback,
83+
entregaCallback
84+
);

0 commit comments

Comments
 (0)