Avatar
とりあえず記事読んできました。
9:39 AM
もともとの return live.and(isLiked).and(participants).and(likeCount)... ↑このコードを
9:40 AM
+ let likeCount = try await LiveLike.query(on: db) .filter(\.$live.$id == id.rawValue) .count() ↑こんな感じに書き換えている部分がありますけど、
9:41 AM
もともとのコードだと、複数のFutureを作ってから .and で待ち合わせをしているので、
9:41 AM
実行フローとしては複数の並列実行処理を開始してから、合流点で全部の完了を待つ制御になっていますが、
9:41 AM
書き換えた後のコードだと、一つ一つの値の取得に対して await しているので、
9:42 AM
実行フローとしては、一つずつ完了を待機しながら順番に処理していく制御になっているので、 (edited)
9:42 AM
実行フローが変わっちゃってるのはOKなのか?というのが気になりました。 同じようなフローを維持するなら、 async let の使い所かと思います。
9:43 AM
全体としては、コードが書きやすく綺麗になっていて、間違いなく良いですね。