如何通过异步回调实现未来
How to implement a future with an asynchronous call back
假设我有一个 api returns 其结果异步回调如下:
def myService(callback: String => Unit)
我想在以后包装实现:
def callService: Future[String]
将此回调与 callService 方法返回的未来联系起来的最佳方式是什么?
def callService = Future {
myService { res: String =>
// How to map the result to the future???
}
}
您可以使用 Promise
:
def callService = Future {
val p = Promise[String]
myService { res: String =>
p.success(res)
}
p.future
}
免责声明:我没有编译这段代码,一些方法名称可能不同,但就是这样。
假设我有一个 api returns 其结果异步回调如下:
def myService(callback: String => Unit)
我想在以后包装实现:
def callService: Future[String]
将此回调与 callService 方法返回的未来联系起来的最佳方式是什么?
def callService = Future {
myService { res: String =>
// How to map the result to the future???
}
}
您可以使用 Promise
:
def callService = Future {
val p = Promise[String]
myService { res: String =>
p.success(res)
}
p.future
}
免责声明:我没有编译这段代码,一些方法名称可能不同,但就是这样。