RxJava 对列表执行操作并返回可观察值

2024-02-13

我是 RxJava(特别是 RxJava2)的新手,并且在看似相对简单的操作中遇到了一些麻烦。我需要从数据库获取一些数据,迭代数据(它表示为列表),对每个项目执行操作,将数据包装在另一个对象中并返回。这是我到目前为止所拥有的:

mDataManager
    .getStuffList(id)
    .flatMapIterable(listOfStuff -> listOfStuff)
    .flatMap(item ->
         mDataManager
             .performCount(id, item.getTitle())
             .doOnNext(item::setCounter)
             .takeLast(1)
             .map(counter -> item))
    .toList()
    .toObservable()
    .flatMap(listOfStuff -> Observable.just(new StuffWrapper(listOfStuff));

我遇到的问题是我的数据管理器调用永远不会完成。这个想法是,每当底层数据发生变化时,用户界面也会发生变化。但是,如果不完成这些调用,toList() 将不会发出该事件。


在 RxJava 2 中,toList返回一个Single: 相当于Observable恰好只有一件物品。您可以通过添加将其转换为 Observable.toObservable,但这并不经常需要。

关于您的其他更改,您的意思是whenever the underlying data changes?您的数据管理员会通知您数据更改吗?

编辑:如果你的mDataManager.getStuffList(id)调用返回一个Observable发出多个项目(也就是说,它永远不会完成,但总是在更改后发出最新的数据集),那么您需要执行以下操作:

mDataManager
.getStuffList(id)
.flatMap(listOfStuff ->
    Observable
    .from(listOfStuff)
    .flatMap(item ->
         mDataManager
             .performCount(id, item.getTitle())
             .doOnNext(item::setCounter)
             .takeLast(1)
         .map(counter -> item)
         .toList()
    )
)
...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RxJava 对列表执行操作并返回可观察值 的相关文章

  • 如何消除警告:使用“$”而不是“.”对于 Eclipse 中的内部类

    我是 Android 开发新手 当我将 eclipse 和 Android SDK 更新到最新版本后 我收到警告 Use instead of for inner classes or use only lowercase letters
  • Java 的 QP 求解器 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 Spring 中设置 WS https 调用超时 (HttpsUrlConnectionMessageSender)

    我正在尝试为 WS 调用设置超时 我延长了WebServiceGatewaySupport并尝试将发送者超时设置为如下 public Object marshalSendAndReceive Object requestPayload We
  • 颤动附近的连接

    当我尝试在设备上做广告或发现时 我收到此错误 但是前一天在环路上效果很好 PlatformException Failure 17 API Nearby CONNECTIONS API is not available on this de
  • java JFileChooser 文件大小过滤器

    我知道我可以按文件类型进行过滤 但是可以按文件大小进行过滤吗 例如 JFileChooser 仅显示 3 MB 以内的图片 简短的回答应该是 你尝试过什么 长答案是肯定的 JFileChooser fc new JFileChooser f
  • 将样式应用于警报对话框

    我决定尝试材质警报dialogs https material io develop android components dialog 在安卓上 我遇到的问题是当我尝试应用某些样式时 检查文档 我发现了这个
  • android 从图库中选择图像

    我想从图库创建一个图片选择器 我使用代码 intent new Intent Intent ACTION PICK android provider MediaStore Images Media EXTERNAL CONTENT URI
  • Android - 如何合并两个视频

    基本上 我正在寻找一种将两个 mp4 视频文件 在 SD 卡上 组合在一起的方法 更像是在第一个视频的末尾附加第二个视频 我进行了很多搜索 但找不到合适的解决方案 好吧 我根本找不到任何解决方案 所以我的问题是 是否有一个库可以组合 并可能
  • 嵌入式 tomcat 7 servlet 3.0 注释不起作用

    我有一个精简的测试项目 其中包含 Servlet 版本 3 0 用注释声明 如下所示 WebServlet test public class TestServlet extends HttpServlet private static f
  • 哪种 Java DOM 包装器是最好或最受欢迎的? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何计算文件中单词的长度?爪哇

    我正在尝试编写一个代码来计算文件中特定长度的单词数 例如 How are you 会打印 Proportion of 3 letter words 100 3 words 我想计算长度为 1 2 3 4 5 6 7 8 9 10 11 12
  • RMI 服务器:rmiregistry 或 LocateRegistry.createRegistry

    对于服务器端的RMI 我们需要启动吗rmiregistry程序 或者只是调用LocateRegistry createRegistry 如果两者都可以的话 各有什么优点和缺点 他们是同一件事 rmiregistry是一个单独的程序 您可以从
  • Android:如何为我的应用程序播放的任何音乐文件创建淡入/淡出音效?

    我正在开发的应用程序播放音乐文件 如果计时器到期 我希望音乐淡出 我怎么做 我正在使用 MediaPlayer 播放音乐 音乐文件位于我的应用程序的原始文件夹中 这是我的 Android MediaPlayer 的整个处理程序类 查看 pl
  • Android 在通话期间播放音频文件[重复]

    这个问题在这里已经有答案了 对于我的 Android 应用程序 我想在从应用程序接听电话后播放音频文件 应用程序将发起电话呼叫 一旦接收者接听电话 应用程序应开始播放录制的音频文件 通过在谷歌上进行大量搜索 我发现这对于未root的设备来说
  • Java SE + Spring Data + Hibernate

    我正在尝试使用 Spring Data Hibernate 启动 Java SE 应用程序 并且到目前为止已经完成了以下操作 配置文件 Configuration PropertySource classpath hibernate pro
  • 如何更改焦点/按下时图像按钮的色调

    我有一个ImageButton在我的应用程序中 当按钮打开时我需要更改图像的色调pressed focused 我有ImageButton设置为获取其src来自 XML 文件 如下所示
  • Java泛型类型

    当我有一个界面时 public interface Foo
  • 监控 Java 应用程序上的锁争用

    我正在尝试创建一个小基准 在 Groovy 中 以显示几个同步方法上的高线程争用 当监控自愿上下文切换时 应该会出现高争用 在 Linux 中 这可以通过 pidstat 来实现 程序如下 class Res private int n s
  • 日期时间解析异常

    解析日期时 我的代码中不断出现异常错误 日期看起来像这样 Wed May 21 00 00 00 EDT 2008 这是尝试读取它的代码 DateTimeFormatter formatter DateTimeFormatter ofPat
  • 使用 Android 的 Mobile Vision API 扫描二维码

    我跟着这个tutorial http code tutsplus com tutorials reading qr codes using the mobile vision api cms 24680关于如何构建可以扫描二维码的 Andr

随机推荐

  • 我应该阻止密码自动完成吗?

    有很多在这里回复 https stackoverflow com questions 2530 how do you disable browser autocomplete on web form field input tag on h
  • 更新应用程序而不安装新的APK

    我正在尝试查看是否可以远程更新用户手机上的应用程序无需下载 apk文件 这是我的 老板 的信息收集请求 他认为这在 iOS 上是可能的 所以他希望我在 Android 上检查一下 本质上 我试图让我的应用程序偶尔从我们的网络服务器中提取版本
  • BigQuery 可以用作主要查询引擎吗?

    我想知道是否可以深入了解使用 BigQuery 作为我们正在开发的分析工具的主要查询引擎的可行性 我们的公共 API 实际上需要使用 PHP SDK 可能超过 1 亿行 执行至少数百个并发 SELECT 查询 但从当前文档来看 BigQue
  • 使用 NodeJS+Express、aws-sdk 将文件直接流式传输到 s3

    我想使用 NodeJS 通过浏览器直接上传一些大文件到 s3 目前还不清楚如何准备该文件上传到 s3 可能有更好的模块 如 Knox 来处理这种情况 但我不确定 有什么想法吗 文件对象 file webkitRelativePath las
  • 如何使用带 IN 子句的 PDO 准备语句? [复制]

    这个问题在这里已经有答案了 我以这种格式将一些数据存储在 MySQL 内的字段中 1 5 9 4我将这个字段命名为related 现在我想在一个内部使用这个字段IN 子句 with PDO 我将该字段内容存储在 related多变的 这是我
  • 为应用整个页面的正文提供背景颜色。为什么?

    body background color red div Hello World div So the background color red 适用于整个页面高度 但当我检查页面时 正文的高度仅达到div含有你好世界 有人请解释一下为什
  • 根据设备大小缩放多行 UIButton 上的字体

    当前设置 我有一个多行的 UIButton它被添加到它的超级视图 一个普通的UIView 按钮的宽度是其父视图的 90 因此 当其父视图的大小发生变化时 标签的宽度也会相应变化 因为Autolayout限制 接下来 在 viewDidLoa
  • Firebase 处理与数据库的断开连接

    我不确定它是否已断开连接或数据库错误事件 首先 当开始在 Firebase 上加载数据时 我会显示一个对话框 然后我想在两种情况下关闭该对话框 有互联网 加载数据成功 我在 onDataChange 中关闭对话框 应用程序启动时没有互联网连
  • 使用 getters() 还是在 POJO 中使用直接字段访问?

    给定一个简单的 POJO 它真的会产生影响吗 或者使用以下任一方法是否可能产生副作用 total getPriorAmount getCurrentAmount OR total this priorAmount this currentA
  • 从 Eclipse 运行干净的 Android 构建?

    有没有办法从 Eclipse 运行构建 每次都会清除应用程序的数据 我想这样做是为了检查我的应用程序的首次运行体验 如果您使用的是 eclipse 请转到应用程序的运行配置 单击目标选项卡 然后选中擦除用户数据字段 我相信这会在每次运行 e
  • 在 JavaFX 中的所有表格单元格上设置工具提示

    我的应用程序包含一个TableView 根据每行中特定单元格的值 通过设置自定义单元格工厂来更改行样式setCellFactory对于本专栏 这很好用 现在我想添加一个工具提示 使用它没什么大不了的setTooltip 然而 此工具提示应设
  • 删除与正则表达式匹配的文件

    在 Windows 上从与 Perl 中的某些正则表达式匹配的目录中删除所有文件的最短和最好的方法 我的例子 全部删除 txt目录中的文件 但保留tmp txt 视窗 chdir dir or die unlink grep ne tmp
  • Pandas 将所有对象列转换为类别

    我想要一个优雅的函数来将 pandas 数据框中的所有对象列转换为类别 df x df x astype category 执行类型转换df select dtypes include object 将子选择所有类别列 但是 这会导致其他列
  • 具有函数得分的 ElasticSearch 查询运行速度慢了 10 倍以上

    这是我的没有功能分数的查询 from 200 size 25 query bool filter bool must nested query terms cotypes id 199
  • 在 Delphi 的 Label 中显示简单标记

    我当前正在 TLabel 中显示一些文本 我现在想通过在文本中显示某些单词来强调它们bold也许italic 在 Delphi 中推荐的方法是什么 是否有类似 TLabel 的组件可以显示简单的 HTML 或标记 我正在想象这样的代码 la
  • 如何在 MSBuild 中排除(禁用)PackageReference 的(传递)依赖性?

    我正在使用一个包Xamanimation其中有一个依赖项Xamarin Forms 4 1 0 写在其nuspec file
  • 在 UIPageViewController 中预加载下一页

    我已经看过很多很多地方 但还没有找到一些好的示例代码来展示如何在 UIPageViewController 中预加载 下一个 页面 关于 SO 有一些答案 详细介绍了一些理论上的方法 请参阅这个问题 https stackoverflow
  • Camera 和 SurfaceView 的奇怪行为

    我对 SurfaceView 的使用感到疯狂 我开发了一个以固定时间间隔拍照的应用程序 它与我的 Androd 2 3 设备配合良好 这是示例代码 public class MainActivity extends Activity pri
  • 在android studio中设置不同的语言

    我是 Android Studio 的新手 我正在尝试通过雅虎天气服务 JSON 数据制作我的简单应用程序天气信息 我想在我的应用程序中显示不同的语言 例如英语和阿拉伯语正在处理 string xml 并翻译一些主要活动中的单词 我尝试将条
  • RxJava 对列表执行操作并返回可观察值

    我是 RxJava 特别是 RxJava2 的新手 并且在看似相对简单的操作中遇到了一些麻烦 我需要从数据库获取一些数据 迭代数据 它表示为列表 对每个项目执行操作 将数据包装在另一个对象中并返回 这是我到目前为止所拥有的 mDataMan