Skip to content

Commit 8d4d8ae

Browse files
#21 - javascript
1 parent 3fec81c commit 8d4d8ae

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
/*
2+
* EJERCICIO:
3+
* Explora el concepto de callback en tu lenguaje creando un ejemplo
4+
* simple (a tu elección) que muestre su funcionamiento.
5+
*
6+
* DIFICULTAD EXTRA (opcional):
7+
* Crea un simulador de pedidos de un restaurante utilizando callbacks.
8+
* Estará formado por una función que procesa pedidos.
9+
* Debe aceptar el nombre del plato, una callback de confirmación, una
10+
* de listo y otra de entrega.
11+
* - Debe imprimir un confirmación cuando empiece el procesamiento.
12+
* - Debe simular un tiempo aleatorio entre 1 a 10 segundos entre
13+
* procesos.
14+
* - Debe invocar a cada callback siguiendo un orden de procesado.
15+
* - Debe notificar que el plato está listo o ha sido entregado.
16+
*/
17+
18+
const legendario = (frase2, callback) => {
19+
const frase = "Mi nombre es Caterina, Caterina " + frase2;
20+
diMiApellido(frase);
21+
};
22+
23+
const diMiApellido = (frase) => {
24+
console.log(frase);
25+
};
26+
27+
legendario("Rodríguez", diMiApellido);
28+
29+
console.log("--------------DIFICULTAD EXTRA---------------");
30+
31+
const pedir = (nombrePlato, confirmar, notificarListo, notificarEntregado) => {
32+
confirmar(nombrePlato);
33+
34+
setTimeout(() => {
35+
notificarListo(nombrePlato);
36+
37+
setTimeout(() => {
38+
notificarEntregado(nombrePlato);
39+
}, Math.floor(Math.random() * 10 + 1) * 1000);
40+
}, Math.floor(Math.random() * 10 + 1) * 1000);
41+
};
42+
43+
const confirmar = (nombrePlato) => {
44+
console.log(`El pedido ${nombrePlato} se ha recibido correctamente ✅`);
45+
};
46+
47+
const notificarListo = (nombrePlato) => {
48+
console.log(`El pedido ${nombrePlato} ya está listo! 😄`);
49+
};
50+
51+
const notificarEntregado = (nombrePlato) => {
52+
console.log(`El pedido ${nombrePlato} ya se ha entregado 😲`);
53+
};
54+
55+
pedir(
56+
"Padthai con doble de lima 🍋",
57+
confirmar,
58+
notificarListo,
59+
notificarEntregado
60+
);

0 commit comments

Comments
 (0)