Avatar
Avatar
lovee
Swift Concurrencyでこんなことやりたいのですがどうすればいいでしょう? final class MyClass { var dispatchGroup: DispatchGroup? func a() { guard dispatchGroup == nil else { return } let group = DispatchGroup() dispatchGroup = group group.enter() group.wait() } func b() { dispatchGroup?.leave() } } 要するに何がやりたいかというと、サーバで何か処理のリクエストを投げた時、そのリクエストの実行結果は別の購読で戻ってくるんです(なぜサーバこんな仕様なのかはツッコまないとして…)が、その動作自体をある程度隠蔽して、await a() で処理が終わるまで待って欲しいです 😇
treastrain / Tanaka.R 12/19/2023 2:25 PM
delegate に値が返ってくるパターンに似ているなと感じました。 withCheckedContinuation(function:_:) で得られる CheckedContinuation を使って待たせる方法はいかがでしょうか?
👀 1