我有理解所有远程服务调用(REST,RPC等)的期货。如果其中一个未来失败,整个理解是否会失败?忽略失败的未来理解
举例来说,假设我有两个期货,使服务调用
val service1Future: Future[Response] = ...
val service2Future: Future[Response] = ...
假设service2Future也有一些recoverWith
抛出异常PartialFunction[Throwable, Future[U]]
。
如果service2Future失败,我真的不在乎。我可以在我的理解中强制执行吗?
for {
service1Response <- service1Future
service2Response <- service2Future
} yield {
// do stuff with service1Response, but I want to get here even if service2Future fails
}
因此,在这种情况下使用理解或flatMap是没有意义的。 – cchantep