1
A
回答
5
for {
album <- repo.lookup(id)
musics <- musicRepo.fromAlbum(id)
} yield Ok(views.html.albums.show(album, musics)
您還可以創建Future
:
repo.lookup(id) flatMap { album =>
musicRepo.fromAlbum(id) map { musics =>
Ok(views.html.albums.show(album, musics)
}
}
,您可以通過理解下面的替代在理解之前,這兩個電話可以並行發生。
val fAlbum = repo.lookup(id)
val fMusics = musicRepo.fromAlbum(id)
for { album <- fAlbum; musics <- fMusics }
yield Ok(views.html.albums.show(album, musics)
1
你應該返回Future[Result]
,你正在返回Future[Future[Result]
這會導致你的問題。考慮使用flatMap
def show(id: Long) = Action.async {
repo.lookup(id) flatMap { album =>
musicRepo.findAlbum(id) map { musics =>
Ok(views.html.albums.show(album, musics))
}
}
}
相關問題
- 1. 如何將視圖的觸摸傳遞給它的父映射
- 2. 如何將哈希映射作爲參數傳遞給JPA?
- 3. 如何將參數傳遞給使用mapActions(...)映射的函數?
- 4. 將參數傳遞給grails映射
- 5. 將參數傳遞給Hadoop映射器
- 6. 將參數傳遞給HTTPService並在URL內使用它們
- 7. 將Play Play Framework參數傳遞給javascript
- 8. 使用Scala Play和Slick,我如何將非平凡關係傳遞給視圖
- 9. 如何將數組作爲多個參數傳遞給函數?
- 10. Codeigniter - 如何將JSON作爲參數傳遞給視圖
- 11. jQuery自定義函數並將參數傳遞給它們
- 12. redirect_to與參數。如何將它們傳遞給我的觀點?
- 13. 如何將多個值作爲參數傳遞給sql語句?
- 14. 將映射值傳遞給期望映射的JSTL標記
- 15. 將函數映射傳遞給宏
- 16. 刪除多個文件,並將它們傳遞給回調
- 17. 將視圖的名稱作爲參數傳遞給函數
- 18. 如何將參數傳遞給java應用程序控制器的scala視圖?
- 19. Django的:如何映射模型對象參數,並將其傳遞給方法
- 20. 將Scala Map作爲參數傳遞給一個函數需要太多時間
- 21. 如何分割列表並將它們作爲單獨的參數傳遞?
- 22. python如何將多個參數傳遞給類而不需要它們
- 23. 將參數傳遞給類作爲VAL
- 24. 如何傳遞一個CustomEvent作爲參數併發送它?
- 25. 如何從C++使用JNI將多個參數傳遞給CallObjectMethod
- 26. 如何將Scala數組傳遞給Scala可變參數方法?
- 27. 將渲染函數作爲參數傳遞給局部視圖
- 28. 如何在ExpressionEngine中重用代碼塊並將參數傳遞給它們
- 29. 如何將日期作爲參數傳遞給碧玉報告
- 30. 如何將參數的字符串列表傳遞給函數,並將它們分配爲獨立參數
第二個「for」方法是最好的解決方案,這將等待兩個期貨在將其傳遞到視圖之前解決 – Alex
謝謝!所有的解決方案都可以工作我決定使用第二個「for」方法,因爲@Alex提到的優點:) –