/* Page prose (fr) */
"GettingAValueBack" = "# Récupérer une valeur\n\nUne tâche peut *renvoyer* une valeur, et tu la lis en faisant `await` sur sa propriété `value`. Comme le travail peut encore être en cours, lire la valeur est en soi un `await`.";
"GettingAValueBack-2" = "**Observe l'exécution:** `Order placed...` s'imprime en premier, puis une pause, puis `Served: a double espresso`. La tâche externe s'est suspendue à `await order.value` jusqu'à ce que la tâche interne produise son résultat, puis a repris exactement là où elle s'était arrêtée.\n\nSi la tâche peut lever une erreur, `value` la lève aussi, donc tu écris `try await task.value`. Quand tu préfères inspecter le résultat sans un `do-try-catch`, recours à `task.result`, qui te remet un `Result` sur lequel tu peux faire un `switch`:\n\n```swift\nenum BarError: Error { case outOfBeans }\n\nTask {\n    let order = Task { () -> String in\n        try await Task.sleep(for: .milliseconds(200))\n        throw BarError.outOfBeans\n    }\n\n    switch await order.result {\n    case .success(let cup): print(\"Served: \\(cup)\")\n    case .failure(let error): print(\"Couldn't serve: \\(error)\")\n    }\n}\n```\n\n`await order.result` ne lève jamais d'erreur; l'erreur est *à l'intérieur* du `Result`. Tu verras `Couldn't serve: outOfBeans`.\n\n[Précédent](@previous)  |  page 3 sur 11  |  [Suivant: Structurées vs. non structurées](@next)";
