/* Page prose (ja) */
"SuspendThenResume" = "# `withCheckedContinuation`: 中断してから再開\n\n本物らしいレガシー API を橋渡ししてみましょう。今日のスペシャルを古いやり方で取得する、街角のコーヒーバーの古い SDK を想像してください。バックグラウンドキューから遅延の後に届けられる completion handler です。それを変更することはできません。ただ `await` したいだけです。";
"SuspendThenResume-2" = "**実行して確認:** まず `Asking the counter...` が出力されます。それからページが約0.4秒ほど一時停止します。これは `todaysSpecial()` が `await` で **中断し**、continuation を待っているところです。`fetchTodaysSpecial` の completion が発火すると、`resume(returning:)` が文字列を届け、非同期関数が目覚め、スペシャルが出力されます。古い API に触れることなく、コールバックを `await` でラップしたのです。\n\n* callout(試してみよう): `asyncAfter` の遅延を `1.5` に変えてみましょう。「Asking the counter...」の行は依然として最初に出力され、スペシャルの前の間だけが長くなります。\n\n> **なぜ completion に `@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)";
