Trong ví dụ dưới đây tôi nhận được ngoại lệ java.util.NoSuchElementException: Future.filter predicate is not satisfied
Scala tương lai với bộ lọc trong cho sự hiểu biết
Tôi muốn có kết quả Future(Test2)
khi kiểm tra if(i == 2)
thất bại. Làm thế nào để xử lý bộ lọc/nếu trong một hiểu cho rằng giao dịch với tương lai soạn?
Dưới đây là một ví dụ đơn giản hóa hoạt động trong REPAL REPL.
Code:
import scala.concurrent.Future
import scala.util.{ Try, Success, Failure }
import scala.concurrent.ExecutionContext.Implicits.global
val f1 = Future(1)
val f2 = for {
i <- f1
if(i == 2)
} yield "Test1"
f2.recover{ case _ => "Test2" }
f2.value
Tuy nhiên nếu f2 thất bại vì "i <- f1" thất bại, kết quả sẽ không là "Test2" nhưng vẫn là lỗi. –