Avatar
Avatar
uhooi
Presenter の処理が気になる Before func didSelectMonster(monster: MonsterEntity) { interactor.saveForSpotlight(monster) router.showMonsterDetail(monster: monster) After func didSelectMonster(monster: MonsterEntity) async { router.showMonsterDetail(monster: monster) await interactor.saveForSpotlight(monster) } ↓だと Ineractor の処理を待つ気がするから、Router による画面遷移の処理と順番を入れ替えた その考えで合っているかはわからない、、 func didSelectMonster(monster: MonsterEntity) async { await interactor.saveForSpotlight(monster) router.showMonsterDetail(monster: monster) }
Ineractor の処理を待つ気がする
正しいです。
Router による画面遷移の処理と順番を入れ替えた
この場合は問題ないのかもしれませんが、いつでも入れ替えられるとは限らないように思います。 処理が終わるのを待たずに後続処理を始めるためには、↓のように書くことができます( : Void がないと警告が出ます)。 func didSelectMonster(monster: MonsterEntity) async { async let x: Void = interactor.saveForSpotlight(monster) router.showMonsterDetail(monster: monster) await x }
(edited)
👀 1