/* Page prose (es) */
"WrappingUp" = "# Resumen\n\nEl modelo clásico no está roto; solo te cobra contabilidad en cada costura, y este capítulo trata de ver con claridad esos impuestos recurrentes. `async`/`await` reescribe el *mismo* trabajo como código en línea recta que el compilador te ayuda a hacer bien. Unos cuantos hábitos hay que desaprender por el camino, que es para lo que sirven las conclusiones de abajo.\n\n* El modelo clásico cobra impuestos recurrentes: anidamiento para pasos dependientes, nada de `throws`, callbacks que puedes olvidar, y saltos manuales al hilo principal.\n* Las llamadas asíncronas encadenadas crecen hasta la **pirámide de la perdición** (la lógica marcha hacia la derecha y el manejo de errores se dispersa por las ramas) porque cada paso *depende* del anterior, no porque los callbacks tengan la culpa.\n* `async`/`await` reescribe el *mismo* trabajo como código en línea recta con un solo `do-try-catch`, y el compilador te impone el manejo de errores.\n* El primer regalo de la concurrencia moderna es la **claridad y la seguridad**, no la velocidad bruta; y `await` es un punto donde la función puede *suspenderse y dejar que el hilo haga otro trabajo*, no una línea que bloquea.\n* No abandonarás los callbacks por completo; seguirás encontrando APIs con completion handler y las envolverás en `await`.\n* Los tres pilares que vienen son **`async`/`await`**, la **concurrencia estructurada** (árboles de tareas con cancelación y propagación de errores automáticas), y los **actores** (seguridad frente a carreras de datos comprobada por el compilador).\n\n---\n\n## A continuación\n\n[Fundamentos de async/await](Async%20Await%20Basics.playgroundchapter/Overview): qué significan realmente `async` y `await`, cómo una función se suspende y reanuda, y cómo definir y llamar tus propias funciones asíncronas.\n\n[Anterior](@previous)  |  página 6 de 6";
