/* Page prose (fr) */
"Overview" = "# Les bases d'async/await\n\nDe retour au bar à café, imagine commander un latte et recevoir un ticket: \"on criera ton nom quand ce sera prêt.\" Voilà un **completion handler**: le style callback du chapitre [Pourquoi la concurrence moderne](Why%20Modern%20Concurrency.playgroundchapter/Overview). Ça marche, mais le code qui attend qu'on crie ton nom s'emmêle: closures imbriquées, gestion des erreurs bricolée sur le côté, et aucun moyen de simplement lire la commande de haut en bas. Ce chapitre présente `async`/`await`, qui te permet d'écrire du code d'attente qui se lit comme une recette ordinaire, une ligne après l'autre, sans *figer* le barista.\n\n---\n\n## Ce que tu vas apprendre\n\n* Comment **définir** une fonction `async` et l'**appeler** avec `await`.\n* Ce que `await` signifie vraiment: un **point de suspension**, pas un blocage.\n* Pourquoi une tâche n'est **pas** un thread, et comment quelques threads exécutent des milliers de tâches.\n* Comment atteindre du code asynchrone depuis du code synchrone ordinaire avec `Task { }`.\n* Comment `async throws` + `try await` ramène la gestion des erreurs à un simple `do-try-catch`.\n* Comment exécuter du travail indépendant **de façon concurrente** avec `async let`, et voir le temps total diminuer.\n\nPasse à la page suivante et définis ta première fonction `async`.\n\npage 1 sur 8  |  [Suivant](@next)";
