說我有下面的代碼片段轉換列表[未來[INT]]到未來[列表[INT]]失敗的期貨
def testFailure2() = {
val f1 = Future.failed(new Exception("ex1"))
val f2 = Future.successful(2);
val f3 = Future.successful((5));
val f4 = Future.failed(new Exception("ex4"))
val l = List(f1, f2, f3, f4)
l
}
返回類型是List[Future[Int]]
。以正常的方式,我可以做Future.sequence並得到List[Future[Int]]
。但在這種情況下,它不會工作,因爲我有一個失敗的未來。所以我想通過忽略失敗的期貨將其轉換爲List [Future [Int]]。我怎麼做?
關於第二個問題,我有類似的話題,我明白filter, collect, partition, etc on a List
。在這種情況下,假設我想將filter/partition
的list
分成兩個列表 - 一個失敗的期貨 - 在另一個成功完成期貨。
我該怎麼做?
在'Future.sequence'上,無論如何你都必須對結果進行模式匹配,無論結果是「成功(_)」還是「失敗(_)」,在哪裏你可以做任何你想做的事情期貨失敗。 – prayagupd
那麼,Future.sequence是否可以接受一個PF,我只能在成功的未來收集?因爲如果我進行模式匹配,我可能會以Future [Option [Int]]結束,它將更像未來(一些(1)),無等 – curiousengineer
@prayagupd,Future.sequence,需要迭代,我將如何在案件上匹配嗎? – curiousengineer