Gibt es eine Möglichkeit, einen Seq [Future [X]] in einen Enumerator[X] zu verwandeln? Der Anwendungsfall ist, dass ich Ressourcen durch Crawlen des Webs erhalten möchte. Dies wird eine Sequenz von Futures zurückgeben, und ich möchte einen Enumerator zurückgeben, der die Futures in der Reihenfolge, in der sie zuerst fertig sind, an den Iteratee weiterleitet.Umwandlung eines Seq [Future [X]] in einen Enumerator [X]
Es sieht aus wie Victor Klang Future select gist könnte dazu verwendet werden - obwohl es ziemlich ineffizient aussieht.
Hinweis: Die Iteratees und Enumerator die in Frage sind solche gegeben durch das Spiel Framework Version 2.x, das heißt mit den folgenden Importe: import play.api.libs.iteratee._
Ich bearbeitet, um foldLeft zu verwenden, das schneller ist als foldRight. –
Vorsicht, 'Future.sequence' gibt eine fehlgeschlagene Zukunft zurück, wenn eine der' seqFutureX'-Futures fehlschlägt. –
und diese Lösungen erwartet alle Futures vor der Fütterung Iteratee, während eine andere von @bblfish es so früh wie möglich (ohne konservierte Reihenfolge!). – viktortnk