/* Page prose (de) */
"Overview" = "# Grundlagen von Async/Await\n\nZurück an der Kaffeebar: Stell dir vor, du bestellst einen Latte und bekommst einen Abholzettel in die Hand: \"Wir rufen deinen Namen, wenn er fertig ist.\" Das ist ein **Completion Handler**: der Callback-Stil aus dem Kapitel [Warum moderne Nebenläufigkeit](Why%20Modern%20Concurrency.playgroundchapter/Overview). Es funktioniert, aber der Code, der auf den Ruf wartet, verheddert sich: verschachtelte Closures, Fehlerbehandlung, die seitlich angeflanscht ist, und keine Möglichkeit, die Bestellung einfach von oben nach unten zu lesen. Dieses Kapitel führt `async`/`await` ein, womit du wartenden Code schreiben kannst, der sich wie ein gewöhnliches Rezept liest, eine Zeile nach der anderen, ohne den Barista *einzufrieren*.\n\n---\n\n## Was du lernst\n\n* Wie du eine `async`-Funktion **definierst** und sie mit `await` **aufrufst**.\n* Was `await` wirklich bedeutet: ein **Suspendierungspunkt**, keine Blockade.\n* Warum eine Aufgabe **kein** Thread ist, und wie ein paar Threads Tausende von Aufgaben ausführen.\n* Wie du aus gewöhnlichem synchronem Code mit `Task { }` an asynchronen Code herankommst.\n* Wie `async throws` + `try await` die Fehlerbehandlung wieder zu einem schlichten `do-try-catch` macht.\n* Wie du unabhängige Arbeit **nebenläufig** mit `async let` ausführst und siehst, wie die Gesamtzeit schrumpft.\n\nBlättere zur nächsten Seite und definiere deine erste `async`-Funktion.\n\nSeite 1 von 8  |  [Weiter](@next)";
