Возможно ли цепочка scala.util.Try и scala.concurrent.Future? Оба они эффективно обеспечивают один и тот же монадический интерфейс, но попытка их объединения приводит к ошибке компиляции.
Например. Учитывая две подписи ниже
def someFuture:Future[String] = ???
def processResult(value:String):Try[String] = ???
Можно ли сделать что-то вроде следующего?
val result = for( a <- someFuture; b <- processResult( a ) ) yield b;
result.map { /* Success Block */ } recover { /* Failure Block */ }
Это, очевидно, приводит к ошибке компиляции, потому что Future и Try не могут быть FlatMapp'ed вместе.
Однако было бы хорошей возможностью, чтобы иметь возможность связывать их - это вообще возможно? Или мне нужно объединить их в будущее [Try [String]]?
(В частности, меня интересует наличие одного блока "восстановления" для исключения исключений в будущем или в попытке).