Skip to content

Commit e272e0f

Browse files
committed
#21 - Kotlin
1 parent b5862de commit e272e0f

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed
+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import kotlinx.coroutines.*
2+
import kotlin.random.Random
3+
4+
// Ejemplo simple de callback
5+
fun operacionAsincrona(callback: (String) -> Unit) {
6+
Thread {
7+
Thread.sleep(2000) // Simula una operación que tarda 2 segundos
8+
callback("Operación completada")
9+
}.start()
10+
}
11+
12+
// Simulador de pedidos de restaurante
13+
fun procesarPedido(
14+
nombrePlato: String,
15+
confirmarPedido: () -> Unit,
16+
platoProcesado: () -> Unit,
17+
platoEntregado: () -> Unit
18+
) {
19+
println("Procesando pedido: $nombrePlato")
20+
confirmarPedido()
21+
22+
runBlocking {
23+
delay(Random.nextLong(1000, 10001)) // Tiempo aleatorio entre 1 y 10 segundos
24+
platoProcesado()
25+
26+
delay(Random.nextLong(1000, 10001))
27+
platoEntregado()
28+
}
29+
}
30+
31+
fun main() {
32+
println("Ejemplo simple de callback:")
33+
operacionAsincrona { resultado ->
34+
println(resultado)
35+
}
36+
37+
Thread.sleep(3000) // Espera para que se complete la operación asíncrona
38+
39+
println("\nSimulador de pedidos de restaurante:")
40+
procesarPedido(
41+
"Pizza Margherita",
42+
{ println("Pedido confirmado: Pizza Margherita") },
43+
{ println("Pizza Margherita está lista") },
44+
{ println("Pizza Margherita ha sido entregada") }
45+
)
46+
}

0 commit comments

Comments
 (0)