Maybe的响应式(rxjava)问题 vs Flowable等

问题描述 投票:0回答:1

我仍在学习react / rxjava的一些细节,并对我经常遇到的用例有一个快速的问题。

我们经常有从数据库或其他数据源获取条目的服务,然后通过HTTP控制器将其返回给其他服务或客户端。我的问题是沿着这些思路的:将这些数据显示为Flowable<DTO>Maybe<List<DTO>>(或适当时为Single<List<DTO>>)之间有什么实际区别。所有数据将立即从数据源加载,因此将在本地列表中。

我假设在一个用例中,数据库调用返回了大量值,通过Flowable公开它们可能是一个更好的选择,以便调用者可以按自己的步调处理它们?但是,如果只是少量的记录,我认为它可以忽略不计。或者,类似地,是否存在返回Maybe<List<DTO>>更可取的情况?

我误解了吗?

谢谢!

rx-java reactive-programming rx-java2
1个回答
0
投票

正如您所说,这实际上取决于您的用例,要处理的DTO数以及它们的包装方式。

[如果在最一般的情况下有Flowable<DTO>,则可以通过仅接受您现在可以处理的内容来施加背压。另外,您可以构造观察者链,将结果转换为列表:

Flowable<DTO> source;

// capture all the data:
source.
  toList().
  subscribe( /* Handle a List<DTO> */);
// Some data in a bunch
source.
  buffer(20).
  subscribe( /* Handle a List<DTO>, 20 entries at a time */ );

重点是,RxJava允许您将观察者链组合成最方便处理的结果类型。 RxJava模型使您可以轻松跨越时间和空间边界。

© www.soinside.com 2019 - 2024. All rights reserved.