/* Page prose (de) */
"ClassicModelTaxes" = "# Das klassische Modell und die Steuern, die es abverlangt\n\nAlles im klassischen Modell hatte dieselbe Form: Du hast irgendeine Arbeit gestartet, ihr eine **Closure** (einen Completion Handler) übergeben, die *später* laufen soll, und bist weitergegangen. Diese Closure ist die Naht, an der dir das klassische Modell im Stillen die Rechnung stellt. Fünf Posten tauchen immer wieder auf:\n\n* **Completion Handler überall.**  \nJeder asynchrone Schritt endet mit dem Aufruf *deiner* Closure. Nichts läuft nach einem asynchronen Aufruf so wie eine normale Zeile; alles muss *innerhalb* des Handlers leben.\n* **Die Pyramide des Verderbens.**  \nWenn Schritt B das Ergebnis von Schritt A braucht, landet Bs Aufruf im Handler von A. Füge Schritt C hinzu und du verschachtelst erneut. Der Code marschiert nach rechts.\n* **Fehler, die kein `throws` nutzen können.**  \nEin Completion Handler ist keine Funktion, aus der du ein `return` machst, also kannst du kein `throw` machen. Fehler wandern als Werte, die du manuell zu jedem Aufrufer weiterleiten musst.\n* **Den Rückruf vergessen.**  \nAuf *irgendeinem* Pfad (einem frühen `return`, einem Fehlerzweig) vergisst man leicht, die Fertigstellung aufzurufen. Der Aufrufer wartet dann für immer, ohne einen Absturz, der auf den Fehler zeigt.\n* **Den Sprung zum Hauptthread vergessen.**  \nErgebnisse treffen auf einer Hintergrund-Warteschlange ein. Fasse von dort aus die UI an und du hast einen Bug, der sich nur *manchmal* zeigt. Du musst daran denken, von Hand zum Hauptthread zurückzuspringen.\n\nDen letzten Teil der manuellen Buchführung hast du im Kapitel [Abhängigkeiten und Abbruch von Operations](Operation%20Dependencies%20and%20Cancellation.playgroundchapter/Overview) kennengelernt: Abhängigkeiten zwischen Operations verdrahten, ein Abbruch-Flag durch jede einzelne fädeln, es an den richtigen Momenten prüfen. Mächtig, aber alles an dir. Sehen wir uns an, wie sich diese Steuern in einem kleinen Auftrag anhäufen.\n\n[Zurück](@previous)  |  Seite 2 von 6  |  [Weiter: Ein Auftrag in drei Schritten](@next)";
