相关疑难解决方法(0)

重试返回Future的函数

假设我有一个foo执行异步计算并返回的函数Future

def foo(x: Int)(implicit ec: ExecutionContext): Future[Int] = ???
Run Code Online (Sandbox Code Playgroud)

现在,我想重试此计算n时间,直到计算成功。

def retryFoo(x: Int, n: Int)(implicit ec: ExecutionContext): Future[Int] = ???
Run Code Online (Sandbox Code Playgroud)

我也想返回重试时抛出的所有异常。因此,我定义了新的异常类,ExceptionsList并要求在所有重试均失败时retryFoo返回ExceptionsList

case class ExceptionsList(es: List[Exception]) extends Exception { ... }  
Run Code Online (Sandbox Code Playgroud)

你会怎么写retryFoo重试foo,并返回一个Future与无论是foo结果还是ExceptionsList

scala future exception

2
推荐指数
1
解决办法
49
查看次数

标签 统计

exception ×1

future ×1

scala ×1