Ich habe ein Problem mit Chaining 2-Futures zusammen, was ich möchte Folgendes zu tun ist:Chaining-Futures mit for-Schleife, die nicht nur Futures
import scala.concurrent.{ ExecutionContext, Future }
def lastFiveFullNews: Future[Seq[FullNews]] = {
for (
seq <- getLastFiveNews;
news <- seq;
fullNews <- getFullNewsById(news.id) //error at this line
) yield fullNews
}
mit folgendem Verfahren Unterschriften:
def getLastFiveNews: Future[Seq[News]]
def getFullNewsById(id: Long): Future[FullNews]
def lastFiveFullNews: Future[Seq[FullNews]]
Im Grunde wird ein FullNews mit einer News ID generiert. Im Idea Editor kein Fehler gemeldet wird, aber das Spiel Compiler sagt:
Typenkonflikt; gefunden: scala.concurrent.Future [FullNews] erforderlich: [?] scala.collection.GenTraversableOnce
Ich glaube das nicht, weil für Schleife in der funktioniert es nicht nur Scalas Futures, sondern auch eine Seq ist. Aber ohne Seq weiß ich nicht, wie ich es schreiben soll. Irgendwelche Ideen ? Vielen Dank.
Vielen Dank! – f7h
Sie könnten auch 'Future.traverse' verwenden, die' Future.sequence' und 'Seq # map' kombiniert:' Future.traverse (seq) (news => getFullNewsById (news.id)) '. –