2017-07-06 64 views
0

我开始研究ReactiveX,无法理解REST API或任何没有关联UI的API的优点。例如,我正在构建由另一台机器上托管的Angular webapp(以及最终其他应用程序)使用的Spring Boot REST API。每当我从webapp发送请求时,我都会使用promise来处理结果而不会阻塞。没有UI的REST API中的ReactiveX

因此,这种情况下,在Spring Boot应用程序中使用ReactiveX(RxJava)是否合理?它会带来什么好处?

回答

1

随着ReactiveX你可以在同一时间asyncronous做不同的调用,当所有这些电话都做了你做的东西(如dissmiss进度),要做到这一点,你必须使用压缩操作:http://reactivex.io/documentation/operators/zip.html

可以使也一个接一个地执行异步任务。您可以过滤第一个电话并将其回复给第二个电话。您可以通过过滤器和FlatMap运营商做到这一点:

http://reactivex.io/documentation/operators/flatmap.html

http://reactivex.io/documentation/operators/filter.html

+0

在一个纯粹的REST API,其中我基本上只进行CRUD操作,我不应该需要执行并行任务因此ReactiveX不有帮助,是吗? –

+0

您可以从REST API执行并行CRUD操作,例如显示包含教室组列表和人员列表的仪表板。您应该执行两项parralel任务,获取所有人员并获取所有组。一旦你得到了结果,你就会显示这个dashbord。另一个使用平面映射操作的例子,你可以使用异步crud任务作为输入参数来执行另一个异步crud任务 – Karim

+0

我仍然认为你的仪表板例子更好的方法是让UI做出两个并行请求(使用promise),服务器会分别处理这些信息(tomcat为每个请求创建一个线程),然后使用Promise.all之类的方式在完成后显示仪表板。服务器无法使用ReactiveX。但我认为事情现在更清楚了。 –