Swiftにasync/awaitがなかなかこないので書いてみました。 コールバック地獄が嫌いな人向けの記事です。 DispatchSemaphoreの使い方 基本の構造 タイムアウトの設定 DispatchSemaphoreの使い方 なんらかの大人の事情で、非同期処理を同期的なメソッドと同じような書き方で処理したい場合があると思います。 (もちろん良いとは言えないですが) 例えば、completion handlerで順番に処理したいことが多くなり、JSのcallback hellのように、ネストが深くなってしまう場合です。 そのような場合に、DispatchSemaphoreを活用することで、処理の記述を見やすくすることができます。 https://developer.apple.com/documentation/dispatch/dispatchsemaphoredeveloper