Ich versuche, eine Quelle [Out, Mat] aus einer Zukunft [Quelle [Out, Mat]] zu erstellen und verwendete dazu die integrierte source.fromFuture in Kombination mit flatMapConcat. Bei Verwendung von fromFuture hat die Quelle jedoch einen materialisierten Wert von NotUsed. Wenn flatMap die tatsächliche Quelle verkettet, wird der materialisierte Wert weiterhin nicht verwendet.Akka-Streams - Wie nehme ich den materialisierten Wert der Quelle, die in einer anderen Quelle flamMapConcatenated ist?
Kann der materialisierte Wert einer Quelle, die innerhalb von flatMapConcat verwendet wird, übernommen werden?
Der Code sieht wie folgt aus:
def sourceFromFutureSource[Out,Mat](futureSource: Future[Source[Out,Mat]]): Source[Out, Mat] = {
Source.fromFuture(futureSource)
.flatMapConcat(identity)
}
Ich habe versucht, nach einem Weg zu suchen, um Ihr Problem zu lösen, aber ich denke nicht, dass es möglich ist, den ursprünglichen 'Mat' -Typ beizubehalten. Ist es wirklich nicht möglich, nur die Zukunft zu nutzen? Z.B. 'futureSource foreach {src => ...}' –
Akka 2.5 hat [Source.fromFutureSource] eingeführt (https://stackoverflow.com/questions/38666637/akka-streams-how-to-take-the-materialized-value -of-source-was-ist-flatmapconc), die den materialisierten Wert von der asynchronen 'Quelle' behalten – cchantep