Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Playframework 如何实现承诺对象?_Playframework_Playframework 2.0_Akka - Fatal编程技术网

Playframework 如何实现承诺对象?

Playframework 如何实现承诺对象?,playframework,playframework-2.0,akka,Playframework,Playframework 2.0,Akka,我正在尝试在ToPlay框架中移植现有的应用程序。应用程序使用一个库来执行SMPP传输,该库已经以异步方式(在成功传输时调用侦听器对象的单独线程中)发送消息的方式实现。我想知道如何使用同一个库并返回一个Promise对象,该对象在更新中的侦听器时将结果返回给Play的web请求 我看到的所有示例都说明了如何使用play WS-library或akka来完成这项工作,akka负责在单独的线程上完成这项工作。如果我已经有了这样一个实现,正如我上面所解释的那样,我如何将它与Play集成?您的SMPP传

我正在尝试在ToPlay框架中移植现有的应用程序。应用程序使用一个库来执行SMPP传输,该库已经以异步方式(在成功传输时调用侦听器对象的单独线程中)发送消息的方式实现。我想知道如何使用同一个库并返回一个Promise对象,该对象在更新中的侦听器时将结果返回给Play的web请求


我看到的所有示例都说明了如何使用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可用于完成异步播放操作