Dentro de una coroutine escribes asyncio.sleep(1) sin await. ¿Qué pasa?
Opciones
- El sleep se ejecuta en segundo plano mientras la coroutine continúa
- Se crea un objeto coroutine que nunca se ejecuta, y aparece una advertencia (Opción correcta)
- Bloquea todo el event loop un segundo y luego continúa
- Python lanza un SyntaxError porque ahí
awaites obligatorio
Respuesta
Se crea un objeto coroutine que nunca se ejecuta; Python avisa con 'coroutine was never awaited'
Por qué
Llamar a una función async no ejecuta su código. Solo crea un objeto coroutine, como una receta que nadie cocina.
El código se ejecuta solo cuando le haces await o lo programas con asyncio.create_task(...).
Python imprime una advertencia 'never awaited' para ayudarte a encontrar este bug.
Recuerda
Llamar a una función async devuelve una coroutine; nada se ejecuta hasta hacerle await.