我有一套未来[T],我想管理到我正在编写的库的单个对象 . 在我目前的实现中,我使用Future.sequence来收集它们并等到它们已经解决,所以我可以在它们上做未来的事情(map,collect,filter) . 然而,这只能让我有能力匹配成功或失败,这不一定是我正在处理的期货收集的情况 . 有些会失败,有些会失败,我希望能够从成功的那些中提取我可以获得的值,并收集其他的异常和错误,以便我可以适当地升级它们 . 在伪代码中它会是这样的
Future.sequence(Set[Future[T]]) andThen {
case FullSuccess => "woot"
case SomeErrors => "well, that's still ok."
case FullErrors => "Ok, who's the wise guy."
}
我真正想要的是拥有数据的数据,如果序列中只有1个期货失败,则不必返回完全失败 .
谢谢您的帮助 .
1 回答
不幸的是,你的案例没有内置帮助器,但是很容易创建你自己的:
结果:
UPD . 或者你可以像这样利用
Future.sequence
(结果相同):