File tree 1 file changed +46
-0
lines changed
Roadmap/21 - CALLBACKS/kotlin
1 file changed +46
-0
lines changed Original file line number Diff line number Diff line change
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 (" \n Simulador 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
+ }
You can’t perform that action at this time.
0 commit comments