Ich habe zwei Funktionen: eine gibt eine Future[Thing Or Exception]
zurück und eine andere, die Future[Boolean
zurückgibt. Ich möchte eine Funktion, die beide aufruft und Future[Thing Or Exception]
zurückgibt. Wenn die boolesche Funktion false zurückgibt, möchte ich eine Ausnahme zurückgeben, andernfalls die Rückgabe der anderen Funktion.Probleme beim Zusammenstellen von Scala Future aus mehreren Futures unterschiedlicher Typen
Ich habe Code wie folgt, aber a) Ich hasse die Besetzung und b) wenn auf dem "Boolean wird wahr" Pfad ausgeführt bekomme ich diesen Fehler, wenn ich schließlich Await.result
auf die Rückkehr in meinem Testcode: "Promise$DefaultPromise cannot be cast to org.scalatic.Or"
.
def thingFuture: Future[Thing Or Exception]
def boolFuture: Future[Boolean]
def combineFutures: Future[Thing Or Exception] = {
val result = boolFuture.map {x =>
x match {
case true => thingFuture
case false => Exception
}
}
// without the cast compiler says result is of type Future[Object]
result.asInstanceOf[Future[Thing Or Exception]]
}
Ich habe dies auch versucht, aber es wird die gleichen Versprechen Fehler auf dem Erfolgsweg mir
def combineFutures: Future[Thing Or Exception] = {
val result = boolFuture.map {x =>
x match {
case true => thingFuture.map { y =>
y match {
case Good(thing) => thing
case Bad(exception) => exception
}
case false => Exception
}
}
}
Kann jemand sagen, wie mit unterschiedlichen Rückgabetypen zwei Futures zu komponieren? Vielen Dank!