/* Page prose (es) */
"CancellationIsAPoliteRequest" = "# La cancelación es una petición cortés\n\nDigamos que el cliente llama a mitad de una tirada de 200 páginas y cancela. Quieres dejar de gastar tóner *ahora*. Toda `Operation` tiene un método `cancel()`, pero aquí está la parte que sorprende a la gente:\n\n**`cancel()` no detiene tu código. Solo pone una bandera (`isCancelled`) en `true`. Tu operación tiene que darse cuenta de esa bandera y retirarse por su cuenta.**\n\nEsto se llama **cancelación cooperativa**: el sistema pide, y tu código coopera. Nada se mata a la fuerza a mitad de instrucción. Si tu `main()` nunca comprueba `isCancelled`, llamar a `cancel()` no cambia nada; el trabajo se ejecuta hasta terminar.\n\nAsí que la regla es: comprueba `isCancelled` en puntos sensatos, especialmente dentro de bucles y antes de pasos costosos.";
"CancellationIsAPoliteRequest-2" = "**Míralo en acción:** verás renderizarse tres o cuatro páginas, luego `📣 Customer cancelled the order`, luego la siguiente iteración del bucle ve `isCancelled == true` e imprime `🚫 Rendering stopped early...`. Las páginas restantes nunca se renderizan. Prueba a borrar la comprobación `if isCancelled` y ejecutar de nuevo: ahora las diez páginas se renderizan sin importar la cancelación: prueba de que `cancel()` por sí solo es solo una petición.\n\n* callout(Pruébalo): Cambia el retardo de cancelación de `1` a `0.1`: ¿cuántas páginas se renderizan antes de que se detenga?\n\nDos detalles para fijar:\n\n* **El `completionBlock` se ejecuta igualmente.** Una operación cancelada sigue siendo una operación *terminada*. Por eso a menudo compruebas `isCancelled` dentro de la finalización para decidir si tuviste éxito o te retiraste.\n* **Para cancelar todo en una cola de una vez,** llama a `queue.cancelAllOperations()`. Envía `cancel()` a cada operación que la cola conoce, pero cada una todavía tiene que comprobar la bandera ella misma.\n\n[Anterior](@previous)  |  página 3 de 7  |  [Siguiente: Operaciones asíncronas](@next)";
