(Надеюсь) простой вопрос о Скалазе Зио.
У меня есть старый код, который я переделал на Zio. Я хочу, чтобы один путь этого кода продолжал вести себя точно так же, как и был:
- синхронный
- блокировка
- в текущем потоке (это жесткое требование)
Как я могу запустить IO
, чтобы он вел себя как старый код блокировки?
В настоящее время я использую:
private lazy val blockingRts = new RTS {}
def runBlocking[E, A](io: IO[E, A]): Either[E, A] = {
blockingRts.unsafeRun(io.attempt)
}
Кажется, это помогает, но я далеко не уверен, что это правильно. Это на 100% обратно совместимо со старым кодом?
IO
. Но это всего лишь мое чутье. - person Markus Appel   schedule 01.04.2019