Skip to content

Commit ca027a6

Browse files
authored
Merge pull request mouredev#6913 from caterinarodriguezdev/21-javascript
#21 - javascript
2 parents ec50942 + c1eda30 commit ca027a6

File tree

1 file changed

+65
-0
lines changed

1 file changed

+65
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
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 readline = require("readline");
32+
const rl = readline.createInterface(process.stdin, process.stdout);
33+
34+
rl.question("¿Qué le gustaría pedir? 🤌 ", (resp) => {
35+
pedir(resp, confirmar, notificarListo, notificarEntregado);
36+
});
37+
38+
const pedir = (nombrePlato, confirmar, notificarListo, notificarEntregado) => {
39+
console.log("\n");
40+
41+
confirmar(nombrePlato);
42+
43+
console.log('\n');
44+
45+
setTimeout(() => {
46+
notificarListo(nombrePlato);
47+
console.log("\n");
48+
49+
setTimeout(() => {
50+
notificarEntregado(nombrePlato);
51+
}, Math.floor(Math.random() * 10 + 1) * 1000);
52+
}, Math.floor(Math.random() * 10 + 1) * 1000);
53+
};
54+
55+
const confirmar = (nombrePlato) => {
56+
console.log(`El pedido ${nombrePlato} se ha recibido correctamente ✅`);
57+
};
58+
59+
const notificarListo = (nombrePlato) => {
60+
console.log(`El pedido ${nombrePlato} ya está listo! 😄`);
61+
};
62+
63+
const notificarEntregado = (nombrePlato) => {
64+
console.log(`El pedido ${nombrePlato} ya se ha entregado 😲`);
65+
};

0 commit comments

Comments
 (0)