假设我有一个api,它在回调中异步返回其结果,如下所示:
def myService(callback: String => Unit)
我想在未来包装实现:
def callService: Future[String]
将此回调与callService方法返回的未来连接的最佳方法是什么?
def callService = Future {
myService { res: String =>
// How to map the result to the future???
}
}
答案 0 :(得分:3)
您可以使用Promise
:
def callService = Future {
val p = Promise[String]
myService { res: String =>
p.success(res)
}
p.future
}
免责声明:我没有编译此代码,某些方法名称可能不同,但这就是主意。