/* Page prose (zh-Hans) */
"SuspendThenResume" = "# `withCheckedContinuation`：挂起，然后恢复\n\n我们来桥接一个感觉很真实的遗留 API。想象一个老式的街角咖啡吧 SDK，它用老办法获取今天的特供：一个 completion handler，在后台队列延迟一段时间后送达。你没法改动它；你只是想对它 `await`。";
"SuspendThenResume-2" = "**观察运行：**`Asking the counter...` 先打印出来。然后页面暂停大约十分之四秒：那是 `todaysSpecial()` 在它的 `await` 处**挂起**，等着 continuation。当 `fetchTodaysSpecial` 的 completion handler 触发时，`resume(returning:)` 送来字符串，异步函数醒来，特供被打印出来。你把一个回调包进了 `await`，却没有碰那个老式 API。\n\n* callout(试一试): 把 `asyncAfter` 的延迟改成 `1.5`。\"Asking the counter...\" 这行仍然先打印，而特供之前的暂停只会变得更长。\n\n> **为什么要在 completion handler 上加 `@Sendable`？** 遗留 API 会跳到后台队列，而在 Swift 6 中，一个跨越那道边界的闭包必须是 `@Sendable`（可以安全地交给另一个线程）。这里它加在*模拟的* API 上，好让示例保持无警告；你在桥接的真实 SDK completion handler 通常已经带着它了。Sendable 会在[全局 actor 与 Sendable](Global%20Actors%20and%20Sendable.playgroundchapter/Overview) 这一章里得到专门的讲解。\n\n[上一页](@previous)  |  第 2 / 8 页  |  [下一页: 用 Result 报告失败](@next)";
