Saltar al contenido principal
🔒 Modo vista previa. Las primeras quince lecciones de Foundations son gratis; esta es Pro. Inicia un trial de 7 días para desbloquear el editor, las pistas AI y el resto del programa. Tarjeta requerida, cancela cuando quieras en Dashboard.Iniciar trial de 7 días →
← CursosSenior Deep-DivesModule 6 · FAANG-2026 deep divesasyncio reentrance — you can't nest `asyncio.run()`predict110 / 161
+150 XP
Tarea
📝 **Tarea:** Predecir el resultado exacto. Dentro de \`outer\` (ejecutándose en un bucle de eventos), suceden tres cosas: (1) comprobamos si se está ejecutando un bucle, (2) intentamos anidar \`asyncio.run(inner())\` y detectamos el RuntimeError, (3) llamamos al mismo \`inner()\` correctamente mediante \`await\`. Traza cada huella. 📋 Implemente la función anterior. Las pruebas se ejecutan automáticamente. 💡 **Pista:** Vuelve a leer la teoría si te quedas atascado.
Predice la salida

Lee el código con atención

import asyncio
import warnings

# Silence the "coroutine never awaited" warning that fires when
# the inner asyncio.run() raises before scheduling its coroutine.
warnings.simplefilter("ignore", RuntimeWarning)


async def inner():
    return "inner-result"


async def outer():
    loop = asyncio.get_running_loop()
    print(f"loop_running:{loop.is_running()}")
    try:
        asyncio.run(inner())
        print("nested:ok")
    except RuntimeError as e:
        print(f"nested:{e}")
    result = await inner()
    print(f"awaited:{result}")


asyncio.run(outer())

¿Qué imprimirá el programa? Escribe aquí:

💬 Discusión

Sé el primero en hacer una pregunta o compartir un consejo.
Inicia sesión para unirte a la discusión. Leer es gratis.
Cargando discusión…