in storehaus-core/src/main/scala/com/twitter/storehaus/FutureOps.scala [82:92]
def find[T](futures: Stream[Future[T]])(pred: T => Boolean): Future[T] = {
if (futures.isEmpty) {
Future.exception(new RuntimeException("Empty iterator in FutureOps.find"))
} else {
futures.head.filter(pred).rescue {
case _: Throwable =>
if (futures.tail.isEmpty) futures.head
else find(futures.tail)(pred)
}
}
}