/* Page prose (es) */
"TheGoldenRule" = "# La regla de oro: reanudar exactamente una vez\n\nTodo lo relativo a las continuaciones se reduce a una ley:\n\n**Debes reanudar una continuación exactamente una vez. Nunca cero veces. Nunca dos.**\n\nAmbos fallos son silenciosos en el momento y viciosos después:\n\n* **Reanudar cero veces**:  \nTomas la continuación, y luego algún camino (un `return` temprano, un `guard`, una rama de error que olvidaste) se salta la reanudación. La función asíncrona que te esperó **se suspende para siempre**. Sin fallo, sin registro por defecto: solo una tarea congelada durante toda la vida del programa, reteniendo lo que sea que capturó. Esa es la trampa que evita la rama \"ni valor ni error\" de la página anterior.\n* **Reanudar dos veces**:  \nSe disparan dos callbacks, o reanudas en un bucle, o un reintento vuelve a llamar por segunda vez. La segunda reanudación corrompe el runtime de concurrencia.\n\nPor eso usas las variantes **checked**: `withCheckedContinuation` y `withCheckedThrowingContinuation`. \"Checked\" significa que el runtime *vigila* tu continuación por exactamente estos dos errores:\n\n* Reanúdala **dos veces** y deliberadamente **interrumpe (trap)**: un fallo duro con un mensaje como `SWIFT TASK CONTINUATION MISUSE: ... tried to resume its continuation more than once`. Ruidoso a propósito: una doble reanudación es un error real, y un fallo claro en pruebas supera a una corrupción misteriosa en producción.\n* Deja que se **fugue** (se libere sin haber sido nunca reanudada) y registra una advertencia como `... leaked its continuation without resuming it`, diciéndote exactamente qué envoltorio se colgó.\n\nHay un par `withUnsafeContinuation` sin estas comprobaciones. Ignóralo mientras aprendes: las versiones checked cuestan casi nada y convierten cuelgues silenciosos y corrupción en problemas ruidosos y encontrables. Recurre a \"unsafe\" solo una vez que un envoltorio esté probado como correcto y hayas medido que la comprobación importa.\n\nEl hábito práctico: para **cada** camino a través de tu callback (éxito, cada error, el `else` de aspecto imposible), pregunta \"¿esto reanuda la continuación?\" Exactamente una reanudación debe ocurrir en cada camino.\n\n[Anterior](@previous)  |  página 5 de 8  |  [Siguiente: Puentear un delegado](@next)";
