【问题标题】:ReactiveX in REST API without UI没有 UI 的 REST API 中的 ReactiveX
【发布时间】:2017-07-06 23:36:42
【问题描述】:

我开始研究 ReactiveX,但无法理解 REST API 或任何没有关联 UI 的 API 的优势。

例如,我正在构建一个 Spring Boot REST API,该 API 由托管在不同机器上的 Angular webapp(最终还有其他应用程序)使用。每当我从 webapp 发送请求时,我都会使用 Promise 来处理结果而不会阻塞。

那么在这种情况下,在 Spring Boot 应用程序中使用 ReactiveX(在这种情况下为 RxJava)是否有意义?会带来什么好处?

【问题讨论】:

    标签: rx-java observer-pattern reactivex


    【解决方案1】:

    使用 ReactiveX,您可以同时进行不同的异步调用,当所有这些调用完成后,您需要执行一些操作(例如关闭进度条),为此您必须使用 zip 运算符:http://reactivex.io/documentation/operators/zip.html

    您也可以一个接一个地执行异步任务。您可以过滤第一个呼叫并将其响应给第二个。你可以通过 filter 和 FlatMap 操作符来做到这一点:

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

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

    【讨论】:

    • 在我基本上只执行 CRUD 操作的纯 REST API 上,我不需要执行并行任务,因此 ReactiveX 没有帮助,对吗?
    • 您可以从您的 REST API 执行并行 CRUD 操作,例如显示包含组列表和教室人员列表的仪表板。您应该执行两个并行任务,获取所有人员 + 获取所有组.获得结果后,您将显示仪表板。另一个使用 flatmap 操作的例子,你可以使用一个异步 crud 任务作为输入参数来执行另一个异步 crud 任务
    • 我仍然认为仪表板示例的更好方法是让 UI 发出两个并行请求(使用承诺),服务器将分别处理这些请求(tomcat为每个请求创建一个线程),然后使用像 Promise.all 这样的东西在完成后显示仪表板。服务器不会使用 ReactiveX。但我认为现在情​​况更清楚了。
    猜你喜欢
    • 1970-01-01
    • 2016-12-20
    • 2019-07-17
    • 2015-03-03
    • 1970-01-01
    • 1970-01-01
    • 2016-06-27
    • 1970-01-01
    • 2021-10-21
    相关资源
    最近更新 更多