-
Option 처리하기zio/zio2 2022. 11. 20. 16:15
some, asSomeError, unsome 등의 사용법을 보자. (+ asSome)
각기 다른 Error type 을 Option[Throwable] 로 만들어 composing 했다.
ZIO#flattenErrorOption 도 참고하자.
val maybeId: ZIO[Any, Option[Nothing], String] = ZIO.fromOption(Some("abc123")) def getUser(userId: String): ZIO[Any, Throwable, Option[User]] = ??? def getTeam(teamId: String): ZIO[Any, Throwable, Team] = ??? val result: ZIO[Any, Throwable, Option[(User, Team)]] = (for { id <- maybeId user <- getUser(id).some team <- getTeam(user.teamId).asSomeError } yield (user, team)).unsome
'zio > zio2' 카테고리의 다른 글
Ref vs Ref.Synchronized (0) 2022.12.09 Fiber (0) 2022.11.23 Error Models (0) 2022.11.20 ZLayer 를 이용한 dependency injection (0) 2022.07.27 java callback 을 ZIO 로 바꾸기 (0) 2022.07.17