热门

最新

红包

立Flag

投票

同城

我的

发布
wang2leee
BigDataMLApplication
4 年前
truewang2leee

【AKKA】Promise

Promise是一个承若,它是一个可修改的对象。一个Promise可以在未来成功的完成一个任务(使用p.success来完成),也可能用来完成一个失败(通过返回一个异常,使用p.failure)。失败了的Promise,可以通过f.recover来处理故障。考虑一个把com.google.common.util.concurrent.FutureCallback<V>封装成Scala的Future的例子,看看Promise是怎样使用的。
val promise = Promise[R]()
Futures.addCallback(
resultSetFuture,
new FutureCallback[ResultSet] {
override def onFailure(t: Throwable): Unit = promise.failure(t)

override def onSuccess(rs: ResultSet): Unit = promise.complete(Try(func(rs)))
},
ec)
promise.future

CSDN App 扫码分享
分享
评论
点赞
打赏
  • 复制链接
  • 举报
下一条动态
立即登录