Playframework 如何实现承诺对象?
我正在尝试在ToPlay框架中移植现有的应用程序。应用程序使用一个库来执行SMPP传输,该库已经以异步方式(在成功传输时调用侦听器对象的单独线程中)发送消息的方式实现。我想知道如何使用同一个库并返回一个Promise对象,该对象在更新中的侦听器时将结果返回给Play的web请求Playframework 如何实现承诺对象?,playframework,playframework-2.0,akka,Playframework,Playframework 2.0,Akka,我正在尝试在ToPlay框架中移植现有的应用程序。应用程序使用一个库来执行SMPP传输,该库已经以异步方式(在成功传输时调用侦听器对象的单独线程中)发送消息的方式实现。我想知道如何使用同一个库并返回一个Promise对象,该对象在更新中的侦听器时将结果返回给Play的web请求 我看到的所有示例都说明了如何使用play WS-library或akka来完成这项工作,akka负责在单独的线程上完成这项工作。如果我已经有了这样一个实现,正如我上面所解释的那样,我如何将它与Play集成?您的SMPP传
我看到的所有示例都说明了如何使用play WS-library或akka来完成这项工作,akka负责在单独的线程上完成这项工作。如果我已经有了这样一个实现,正如我上面所解释的那样,我如何将它与Play集成?您的SMPP传输库将返回一个句柄,您可以注册完成侦听器,对吗?在这种情况下,您应该能够创建如下桥接:
val p=scala.concurrent.Promise[ResultType]()
val handle=smpp.doit()//或调用任何方法
handle.onComplete(h=>p.success(h.result))//或p.complete,如果事情可能失败
返回p.future
然后,生成的Future可用于完成异步播放操作