我被困在試圖拼合Seq[Seq[]]
並返回結果。因此,我有是這樣的:Scala拼合一個Seq [Future [Seq []]]
def getListsByLC(lcId: Int): Action[AnyContent] = Action.async {
listRepo.getListsByLC(lcId).flatMap { lists =>
val items: Seq[Future[Seq[Item]]] = lists.map { list =>
itemRepo.getItemsByList(list.id)
}
Future.sequence(items).map { result =>
Ok(Json.obj("lists" -> lists, "items" -> result))
}
}
}
的array
現在我想做的事就是flatten
這Future.sequence
爲了只已包含所有項目一個陣列。這,旁邊我發現瀏覽網頁類似的版本,是我的嘗試:
def getListsByLC(lcId: Int): Action[AnyContent] = Action.async {
listRepo.getListsByLC(lcId).flatMap { lists =>
val items: Seq[Future[Seq[Item]]] = lists.map { list =>
itemRepo.getItemsByList(list.id)
}
Future.sequence(items).map(._flatten) { result =>
Ok(Json.obj("lists" -> lists, "items" -> result))
}
}
}
在這裏,我得到這個編譯錯誤: 對不起,我截圖的質量。有任何想法嗎?提前致謝!
鑑於你的截圖它看起來像你的例子不能編譯。什麼產生了你發佈的輸出? – pedromss
我的第一個代碼示例生成了輸出 – Nocebo
然後你應該發佈生成輸出的截圖。不是沒有編譯的東西。 – pedromss